ks = ngx.shared[r.args.dict].keys();
}
- r.return(200, `[${ks.toSorted()}]`);
+ var sorted = ks.toSorted();
+ r.return(200, (sorted.length) ? sorted.join(",") : "empty");
}
function items(r) {
kvs = ngx.shared[r.args.dict].items();
}
- r.return(200, njs.dump(kvs.toSorted()));
+ r.return(200, kvs.toSorted().join("|"));
}
function name(r) {
$t->reload();
-like(http_get('/keys?dict=foo'), qr/\[FOO\,FOO2\,FOO3]/, 'foo keys');
-like(http_get('/keys?dict=foo&max=2'), qr/\[FOO\,FOO3]/, 'foo keys max 2');
+like(http_get('/keys?dict=foo'), qr/FOO\,FOO2\,FOO3/, 'foo keys');
+like(http_get('/keys?dict=foo&max=2'), qr/FOO\,FOO3/, 'foo keys max 2');
like(http_get('/size?dict=foo'), qr/size: 3/, 'no of items in foo');
like(http_get('/get?dict=foo&key=FOO2'), qr/yyy/, 'get foo.FOO2');
like(http_get('/get?dict=bar&key=FOO'), qr/zzz/, 'get bar.FOO');
TODO: {
local $TODO = 'not yet' unless has_version('0.8.1');
-like(http_get('/keys?dict=foo'), qr/\[]/, 'foo keys after expire');
-like(http_get('/keys?dict=bar'), qr/\[FOO\,FOO2]/, 'bar keys after a delay');
+like(http_get('/keys?dict=foo'), qr/empty/, 'foo keys after expire');
+like(http_get('/keys?dict=bar'), qr/FOO\,FOO2/, 'bar keys after a delay');
like(http_get('/size?dict=foo'), qr/size: 0/,
'no of items in foo after expire');
-like(http_get('/items?dict=bar'), qr/\[\['FOO','zzz'],\['FOO2','aaa']]/,
+like(http_get('/items?dict=bar'), qr/FOO,zzz|FOO2,aaa/,
'bar items');
-like(http_get('/items?dict=waka'),
- qr/\[\['FOO',47],\['FOO2',7779],\['FOO3',3338]]/, 'waka items');
+like(http_get('/items?dict=waka'), qr/FOO,47|FOO2,7779|FOO3,3338/,
+ 'waka items');
}
like(http_get('/incr?dict=waka&key=FOO3&by=42&timeout=1000'), qr/42/,
'incr waka.FOO3');
-like(http_get('/keys?dict=waka'), qr/\[FOO\,FOO2\,FOO3]/, 'waka keys');
+like(http_get('/keys?dict=waka'), qr/FOO\,FOO2\,FOO3/, 'waka keys');
}