X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Ftest_maplog.c;h=b51f7f51b25ee982de436b223b521a6f1d990db2;hb=14b804898a5e5b9ec5029d3466621178b85af925;hp=edb61bd84d0c95a9ae1a3c15250c9f4275826c2b;hpb=55c79e9c7e14b501baa72bc8b415e0a66752ed01;p=vpp.git diff --git a/src/vppinfra/test_maplog.c b/src/vppinfra/test_maplog.c index edb61bd84d0..b51f7f51b25 100644 --- a/src/vppinfra/test_maplog.c +++ b/src/vppinfra/test_maplog.c @@ -23,6 +23,12 @@ typedef struct u64 junk[7]; } test_entry_t; +typedef enum +{ + TEST_NORMAL, + TEST_CIRCULAR, +} test_type_t; + static void process_maplog_records (clib_maplog_header_t * h, test_entry_t * e, u64 records_this_file) @@ -49,7 +55,7 @@ process_maplog_records (clib_maplog_header_t * h, } e++; } - fformat (stdout, "--------------\n"); + fformat (stdout, "\n--------------\n"); } int @@ -58,14 +64,22 @@ test_maplog_main (unformat_input_t * input) clib_maplog_main_t *mm = &maplog_main; clib_maplog_init_args_t _a, *a = &_a; int rv; - int i; + int i, limit; test_entry_t *t; int noclose = 0; + test_type_t which = TEST_NORMAL; - if (unformat (input, "noclose")) - noclose = 1; + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (unformat (input, "noclose")) + noclose = 1; + else if (unformat (input, "circular")) + which = TEST_CIRCULAR; + else + clib_warning ("unknown input '%U'", format_unformat_error, input); + } - memset (a, 0, sizeof (*a)); + clib_memset (a, 0, sizeof (*a)); a->mm = mm; a->file_basename = "/tmp/maplog_test"; a->file_size_in_bytes = 4096; @@ -74,6 +88,7 @@ test_maplog_main (unformat_input_t * input) a->application_major_version = 1; a->application_minor_version = 0; a->application_patch_version = 0; + a->maplog_is_circular = (which == TEST_CIRCULAR) ? 1 : 0; rv = clib_maplog_init (a); @@ -83,14 +98,16 @@ test_maplog_main (unformat_input_t * input) exit (1); } - for (i = 0; i < 64 * 5; i++) + limit = (which == TEST_CIRCULAR) ? (64 + 2) : 64 * 5; + + for (i = 0; i < limit; i++) { t = clib_maplog_get_entry (mm); t->serial_number = i + 1; } if (noclose) - memset (mm, 0, sizeof (*mm)); + clib_memset (mm, 0, sizeof (*mm)); else clib_maplog_close (mm); @@ -106,6 +123,8 @@ main (int argc, char *argv[]) unformat_input_t i; int ret; + clib_mem_init (0, 64ULL << 20); + unformat_init_command_line (&i, argv); ret = test_maplog_main (&i); unformat_free (&i);