[njs] Tests: fixed incr() tests for a shared dictionary.

Dmitry Volyntsev xeioex at nginx.com
Thu Sep 7 23:13:03 UTC 2023


details:   https://hg.nginx.org/njs/rev/5b52293ad769
branches:  
changeset: 2193:5b52293ad769
user:      Dmitry Volyntsev <xeioex at nginx.com>
date:      Thu Sep 07 16:12:31 2023 -0700
description:
Tests: fixed incr() tests for a shared dictionary.

Previously, the incr() method called SharedDict.incr() with a NaN value
as a second argument because parseInt(undefined) returns NaN.

The test itself failed to capture the issue because it matches the whole
HTTP response and the pattern itself was too short, so it matched
accidentally.

diffstat:

 nginx/t/js_shared_dict.t |  11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diffs (28 lines):

diff -r 1f0adb4b81da -r 5b52293ad769 nginx/t/js_shared_dict.t
--- a/nginx/t/js_shared_dict.t	Wed Sep 06 18:02:50 2023 -0700
+++ b/nginx/t/js_shared_dict.t	Thu Sep 07 16:12:31 2023 -0700
@@ -190,8 +190,8 @@ EOF
 
     function incr(r) {
         var dict = ngx.shared[r.args.dict];
-        var val = dict.incr(r.args.key, parseInt(r.args.by),
-                            parseInt(r.args.def));
+        var def = r.args.def ? parseInt(r.args.def) : 0;
+        var val = dict.incr(r.args.key, parseInt(r.args.by), def);
         r.return(200, val);
     }
 
@@ -272,9 +272,10 @@ like(http_get('/set?dict=waka&key=FOO&va
 like(http_get('/chain?dict=bar&key=FOO2&value=aaa'), qr/aaa/, 'chain bar.FOO2');
 
 like(http_get('/incr?dict=waka&key=FOO&by=5'), qr/47/, 'incr waka.FOO');
-like(http_get('/incr?dict=waka&key=FOO2&by=1'), qr/1/, 'incr waka.FOO2');
-like(http_get('/incr?dict=waka&key=FOO2&by=2'), qr/3/, 'incr waka.FOO2');
-like(http_get('/incr?dict=waka&key=FOO3&by=3&def=5'), qr/8/, 'incr waka.FOO3');
+like(http_get('/incr?dict=waka&key=FOO2&by=7777'), qr/7777/, 'incr waka.FOO2');
+like(http_get('/incr?dict=waka&key=FOO2&by=2'), qr/7779/, 'incr waka.FOO2');
+like(http_get('/incr?dict=waka&key=FOO3&by=3333&def=5'), qr/3338/,
+	'incr waka.FOO3');
 
 like(http_get('/has?dict=foo&key=FOO'), qr/true/, 'has foo.FOO');
 like(http_get('/has?dict=foo&key=NOT_EXISTING'), qr/false/,


More information about the nginx-devel mailing list