ccan: update to latest version, get json_out_finished update.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
CCAN imported from http://ccodearchive.net.
|
CCAN imported from http://ccodearchive.net.
|
||||||
|
|
||||||
CCAN version: init-2500-gcbc7cbf1
|
CCAN version: init-2502-gb45a3266
|
||||||
|
|||||||
@@ -337,11 +337,12 @@ char *json_out_direct(struct json_out *jout, size_t len)
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void json_out_finished(const struct json_out *jout)
|
void json_out_finished(struct json_out *jout)
|
||||||
{
|
{
|
||||||
#ifdef CCAN_JSON_OUT_DEBUG
|
#ifdef CCAN_JSON_OUT_DEBUG
|
||||||
assert(tal_count(jout->wrapping) == 0);
|
assert(tal_count(jout->wrapping) == 0);
|
||||||
#endif
|
#endif
|
||||||
|
jout->empty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *json_out_contents(const struct json_out *jout, size_t *len)
|
const char *json_out_contents(const struct json_out *jout, size_t *len)
|
||||||
|
|||||||
@@ -177,9 +177,12 @@ bool json_out_add_splice(struct json_out *jout,
|
|||||||
* @jout: the json_out object written to.
|
* @jout: the json_out object written to.
|
||||||
*
|
*
|
||||||
* This simply causes internal assertions that all arrays and objects are
|
* This simply causes internal assertions that all arrays and objects are
|
||||||
* finished. It needs CCAN_JSON_OUT_DEBUG defined to have any effect.
|
* finished. If CCAN_JSON_OUT_DEBUG is defined, it does sanity checks.
|
||||||
|
*
|
||||||
|
* This also resets the empty flag, so there will be no comma added if
|
||||||
|
* another JSON object is written.
|
||||||
*/
|
*/
|
||||||
void json_out_finished(const struct json_out *jout);
|
void json_out_finished(struct json_out *jout);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* json_out_contents - read contents from json_out stream.
|
* json_out_contents - read contents from json_out stream.
|
||||||
|
|||||||
43
ccan/ccan/opt/test/run-unregister.c
Normal file
43
ccan/ccan/opt/test/run-unregister.c
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#include <ccan/tap/tap.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <ccan/opt/opt.c>
|
||||||
|
#include <ccan/opt/usage.c>
|
||||||
|
#include <ccan/opt/helpers.c>
|
||||||
|
#include <ccan/opt/parse.c>
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
const char *myname = argv[0];
|
||||||
|
|
||||||
|
plan_tests(15);
|
||||||
|
|
||||||
|
opt_register_noarg("--aaa|-a", test_noarg, NULL, "AAAAAAll");
|
||||||
|
opt_register_arg("-b", test_arg, NULL, "bbb", "b");
|
||||||
|
|
||||||
|
/* We can't unregister wrong ones, but can unregister correct one */
|
||||||
|
ok1(!opt_unregister("--aaa"));
|
||||||
|
ok1(!opt_unregister("-a"));
|
||||||
|
ok1(opt_unregister("--aaa|-a"));
|
||||||
|
|
||||||
|
/* Arg parsing works as if we'd never registered it */
|
||||||
|
ok1(parse_args(&argc, &argv, "-bbbb", NULL));
|
||||||
|
ok1(argc == 1);
|
||||||
|
ok1(argv[0] == myname);
|
||||||
|
ok1(argv[1] == NULL);
|
||||||
|
ok1(test_cb_called == 1);
|
||||||
|
|
||||||
|
ok1(!parse_args(&argc, &argv, "--aaa", NULL));
|
||||||
|
|
||||||
|
/* We can still add another one OK. */
|
||||||
|
opt_register_noarg("-c", test_noarg, NULL, "AAAAAAll");
|
||||||
|
ok1(parse_args(&argc, &argv, "-c", NULL));
|
||||||
|
ok1(argc == 1);
|
||||||
|
ok1(argv[0] == myname);
|
||||||
|
ok1(argv[1] == NULL);
|
||||||
|
ok1(test_cb_called == 2);
|
||||||
|
|
||||||
|
/* parse_args allocates argv */
|
||||||
|
free(argv);
|
||||||
|
return exit_status();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user