Skip to content

Commit 161dfec

Browse files
committed
Implement databuf test for auparse
Implement comprehensive tests covering basic appends and preserved-head behavior
1 parent 52f4167 commit 161dfec

File tree

2 files changed

+78
-2
lines changed

2 files changed

+78
-2
lines changed

auparse/test/Makefile.am

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#
2222

2323
CONFIG_CLEAN_FILES = *.loT *.rej *.orig *.cur
24-
check_PROGRAMS = auparse_test auparselol_test lookup_test
24+
check_PROGRAMS = auparse_test auparselol_test lookup_test databuf_test
2525
dist_check_SCRIPTS = auparse_test.py
2626
EXTRA_DIST = auparse_test.ref auparse_test.ref.py test.log test2.log test3.log test4.log auditd_raw.sed
2727

@@ -45,9 +45,15 @@ auparselol_test_LDADD = ${top_builddir}/auparse/libauparse.la \
4545
${top_builddir}/lib/libaudit.la ${top_builddir}/common/libaucommon.la
4646
auparselol_test_DEPENDENCIES = ${top_builddir}/auparse/libauparse.la ${top_builddir}/lib/libaudit.la ${top_builddir}/common/libaucommon.la
4747

48+
databuf_test_SOURCES = databuf_test.c
49+
databuf_test_LDFLAGS = -static
50+
databuf_test_LDADD = ${top_builddir}/auparse/libauparse.la \
51+
${top_builddir}/lib/libaudit.la ${top_builddir}/common/libaucommon.la
52+
databuf_test_DEPENDENCIES = ${top_builddir}/auparse/libauparse.la ${top_builddir}/lib/libaudit.la ${top_builddir}/common/libaucommon.la
53+
4854
drop_srcdir = sed 's,$(srcdir)/test,test,'
4955

50-
check-local: auparse_test auparselol_test lookup_test
56+
check-local: auparse_test auparselol_test lookup_test databuf_test
5157
test "$(top_srcdir)" = "$(top_builddir)" || \
5258
cp $(top_srcdir)/auparse/test/test*.log .
5359
LC_ALL=C \

auparse/test/databuf_test.c

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#include "config.h"
2+
#include <assert.h>
3+
#include <string.h>
4+
#include <stdio.h>
5+
#include "data_buf.h"
6+
7+
static void test_basic(void)
8+
{
9+
DataBuf db;
10+
char data1[] = "abcd";
11+
char data2[] = "ef";
12+
char data3[] = "ghij";
13+
14+
assert(databuf_init(&db, 0, 0) == 1);
15+
assert(databuf_append(&db, data1, sizeof(data1) - 1) == 1);
16+
assert(db.len == 4 && db.offset == 0);
17+
assert(memcmp(databuf_beg(&db), "abcd", 4) == 0);
18+
19+
assert(databuf_append(&db, data2, sizeof(data2) - 1) == 1);
20+
assert(db.len == 6 && db.offset == 0);
21+
assert(memcmp(databuf_beg(&db), "abcdef", 6) == 0);
22+
23+
assert(databuf_advance(&db, 3) == 1);
24+
assert(db.offset == 3 && db.len == 3);
25+
assert(memcmp(databuf_beg(&db), "def", 3) == 0);
26+
27+
assert(databuf_append(&db, data3, sizeof(data3) - 1) == 1);
28+
assert(db.offset == 0 && db.len == 7);
29+
assert(memcmp(databuf_beg(&db), "defghij", 7) == 0);
30+
31+
databuf_free(&db);
32+
}
33+
34+
static void test_preserve(void)
35+
{
36+
DataBuf db;
37+
char data1[] = "abcd";
38+
char data2[] = "efgh";
39+
char big[] = "01234567";
40+
41+
assert(databuf_init(&db, 8, DATABUF_FLAG_PRESERVE_HEAD) == 1);
42+
assert(databuf_append(&db, data1, 4) == 1);
43+
assert(databuf_advance(&db, 2) == 1);
44+
assert(databuf_append(&db, data2, 4) == 1);
45+
assert(db.offset == 2 && db.len == 6);
46+
47+
assert(databuf_reset(&db) == 1);
48+
assert(db.offset == 0 && db.len == 6);
49+
assert(memcmp(databuf_beg(&db), "abcdef", 6) == 0);
50+
51+
assert(databuf_replace(&db, "xy", 2) == 1);
52+
assert(databuf_advance(&db, 2) == 1);
53+
assert(databuf_append(&db, big, 8) == 1);
54+
assert(db.offset == 2 && db.len == 8);
55+
56+
assert(databuf_reset(&db) == 1);
57+
assert(db.offset == 0 && db.len == 8);
58+
assert(memcmp(databuf_beg(&db), "xy012345", 8) == 0);
59+
60+
databuf_free(&db);
61+
}
62+
63+
int main(void)
64+
{
65+
test_basic();
66+
test_preserve();
67+
printf("databuf tests: all passed\n");
68+
return 0;
69+
}
70+

0 commit comments

Comments
 (0)