From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: [libnftables PATCH 6/6] tests: update tests with nft_*_parse_file()
Date: Wed, 8 Jan 2014 00:32:19 +0100 [thread overview]
Message-ID: <20140107233219.GE16894@localhost> (raw)
In-Reply-To: <20140107114742.12841.61774.stgit@nfdev.cica.es>
On Tue, Jan 07, 2014 at 12:47:42PM +0100, Arturo Borrero Gonzalez wrote:
> Lets do testing with nft_*_parse_file() functions.
>
> Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
> ---
> tests/nft-parsing-test.c | 102 +++++++++++++++++++++++++++-------------------
> 1 file changed, 59 insertions(+), 43 deletions(-)
>
> diff --git a/tests/nft-parsing-test.c b/tests/nft-parsing-test.c
> index 558c849..4702fd3 100644
> --- a/tests/nft-parsing-test.c
> +++ b/tests/nft-parsing-test.c
> @@ -73,7 +73,8 @@ static void print_detail_error(char *a, char *b)
> }
> }
>
> -static int compare_test(uint32_t type, void *input, const char *filename)
> +static int compare_test(uint32_t type, void *input, const char *filename,
> + FILE *fp)
> {
> struct nft_table *t = NULL;
> struct nft_chain *c = NULL;
> @@ -82,7 +83,6 @@ static int compare_test(uint32_t type, void *input, const char *filename)
> struct nft_ruleset *rs = NULL;
> char orig[4096];
> char out[4096];
> - FILE *fp;
>
> switch (type) {
> case TEST_XML_TABLE:
> @@ -148,14 +148,8 @@ static int compare_test(uint32_t type, void *input, const char *filename)
> return -1;
> }
>
> - fp = fopen(filename, "r");
> - if (fp == NULL) {
> - perror("open");
> - exit(EXIT_FAILURE);
> - }
> -
> + rewind(fp);
> fgets(orig, sizeof(orig), fp);
> - fclose(fp);
>
> if (strncmp(orig, out, strlen(out)) == 0)
> return 0;
> @@ -178,19 +172,26 @@ static int test_json(const char *filename, struct nft_parse_err *err)
> struct nft_ruleset *rs;
> json_t *root;
> json_error_t error;
> - char *json;
> + FILE *fp;
> +
> + fp = fopen(filename, "r");
> + if (fp == NULL) {
> + printf("unable to open file %s: %s\n", filename,
> + strerror(errno));
> + return -1;
> + }
>
> root = json_load_file(filename, 0, &error);
> if (!root)
> return -1;
>
> - json = json_dumps(root, JSON_INDENT(0));
> -
> if (json_object_get(root, "table") != NULL) {
This was fine in an early stage, but now that you have the ruleset
API, we should provide a nft_ruleset_parse_file(...) function that do
all this for you. As a side effect, the test will be simplified.
> t = nft_table_alloc();
> if (t != NULL) {
> - if (nft_table_parse(t, NFT_PARSE_JSON, json, err) == 0)
> - ret = compare_test(TEST_JSON_TABLE, t, filename);
> + if (nft_table_parse_file(t, NFT_PARSE_JSON,
> + fp, err) == 0)
> + ret = compare_test(TEST_JSON_TABLE, t,
> + filename, fp);
> else
> goto failparsing;
>
next prev parent reply other threads:[~2014-01-07 23:32 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-07 11:47 [libnftables PATCH 0/6] parsing update Arturo Borrero Gonzalez
2014-01-07 11:47 ` [libnftables PATCH 1/6] mxml: add error reference of the top node Arturo Borrero Gonzalez
2014-01-07 23:16 ` Pablo Neira Ayuso
2014-01-07 11:47 ` [libnftables PATCH 2/6] set_elem: add json parsing to API Arturo Borrero Gonzalez
2014-01-07 23:16 ` Pablo Neira Ayuso
2014-01-07 11:47 ` [libnftables PATCH 3/6] internal: rework parsing symbol logic Arturo Borrero Gonzalez
2014-01-07 23:18 ` Pablo Neira Ayuso
2014-01-08 12:20 ` Arturo Borrero Gonzalez
2014-01-08 12:25 ` Pablo Neira Ayuso
2014-01-07 11:47 ` [libnftables PATCH 4/6] internal: add a selector for parsing ops Arturo Borrero Gonzalez
2014-01-07 23:29 ` Pablo Neira Ayuso
2014-01-08 12:31 ` Arturo Borrero Gonzalez
2014-01-08 13:36 ` Pablo Neira Ayuso
2014-01-07 11:47 ` [libnftables PATCH 5/6] parsing: add interface to parse from file Arturo Borrero Gonzalez
2014-01-07 11:47 ` [libnftables PATCH 6/6] tests: update tests with nft_*_parse_file() Arturo Borrero Gonzalez
2014-01-07 23:32 ` Pablo Neira Ayuso [this message]
2014-01-08 12:21 ` Arturo Borrero Gonzalez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140107233219.GE16894@localhost \
--to=pablo@netfilter.org \
--cc=arturo.borrero.glez@gmail.com \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.