summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2012-01-04 16:45:01 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2012-01-04 16:45:01 +0100
commit849342adcb7099d23b39192a4369908bb0259eee (patch)
treeeddd5985367b27c1e2b923aeeb48dd82a55f177c
parent993fc230c9a372a503ca707937e16a23960720aa (diff)
expect: extend test_api for the expectation API
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--qa/test_api.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/qa/test_api.c b/qa/test_api.c
index 60c6520..1efaf2f 100644
--- a/qa/test_api.c
+++ b/qa/test_api.c
@@ -33,6 +33,7 @@ int main(void)
{
int ret, i;
struct nf_conntrack *ct, *tmp;
+ struct nf_expect *exp;
char data[32];
const char *val;
int status;
@@ -129,7 +130,58 @@ int main(void)
eval_sigterm(status);
}
+ exp = nfexp_new();
+ if (!exp) {
+ perror("nfexp_new");
+ return 0;
+ }
+
+ printf("== test expect set API ==\n");
+ ret = fork();
+ if (ret == 0) {
+ for (i=0; i<ATTR_EXP_MAX; i++)
+ nfexp_set_attr(exp, i, data);
+ exit(0);
+ } else {
+ wait(&status);
+ eval_sigterm(status);
+ }
+
+ for (i=0; i<ATTR_EXP_MAX; i++)
+ nfexp_set_attr(exp, i, data);
+
+ printf("== test expect get API ==\n");
+ ret = fork();
+ if (ret == 0) {
+ for (i=0; i<ATTR_EXP_MAX; i++)
+ nfexp_get_attr(exp, i);
+ exit(0);
+ } else {
+ wait(&status);
+ eval_sigterm(status);
+ }
+
+ printf("== validate expect set API ==\n");
+ ret = fork();
+ if (ret == 0) {
+ for (i=0; i<ATTR_EXP_MAX; i++) {
+ data[0] = (uint8_t) i;
+ nfexp_set_attr(exp, i, data);
+ val = nfexp_get_attr(exp, i);
+ 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);
+ }
+
nfct_destroy(ct);
nfct_destroy(tmp);
+ nfexp_destroy(exp);
return EXIT_SUCCESS;
}