summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2012-01-04 16:38:22 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2012-01-04 16:38:22 +0100
commitf3b203c5e4cab5ab50de19e1da0850d16266fd29 (patch)
tree804d18322008452deae1b82298fccc92f66aa32d
parent00c2c9dca32eb8eb8687b42fc6d135f35eaa5ff8 (diff)
qa: extend test_api to validate set API for conntrack objects
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--qa/test_api.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/qa/test_api.c b/qa/test_api.c
index e7a8453..60c6520 100644
--- a/qa/test_api.c
+++ b/qa/test_api.c
@@ -34,6 +34,7 @@ int main(void)
int ret, i;
struct nf_conntrack *ct, *tmp;
char data[32];
+ const char *val;
int status;
/* initialize fake data for testing purposes */
@@ -76,6 +77,37 @@ int main(void)
eval_sigterm(status);
}
+ printf("== validate set API ==\n");
+ ret = fork();
+ if (ret == 0) {
+ for (i=0; i<ATTR_MAX; i++) {
+ data[0] = (uint8_t) i;
+ nfct_set_attr(ct, i, data);
+ val = nfct_get_attr(ct, i);
+ /* These attributes cannot be set, ignore them. */
+ switch(i) {
+ case ATTR_ORIG_COUNTER_PACKETS:
+ case ATTR_REPL_COUNTER_PACKETS:
+ case ATTR_ORIG_COUNTER_BYTES:
+ case ATTR_REPL_COUNTER_BYTES:
+ case ATTR_USE:
+ case ATTR_SECCTX:
+ case ATTR_TIMESTAMP_START:
+ case ATTR_TIMESTAMP_STOP:
+ continue;
+ }
+ if (val[0] != data[0]) {
+ printf("ERROR: set/get operations don't match "
+ "for attribute %d (%x != %x)\n",
+ i, val[0], data[0]);
+ }
+ }
+ exit(0);
+ } else {
+ wait(&status);
+ eval_sigterm(status);
+ }
+
printf("== test copy API ==\n");
ret = fork();
if (ret == 0) {