/*
Generate a simple route table (for all but direct route table testing).
- This gets tricky inasmuch as we generate two in one; first a whole table
+ This gets tricky inasmuch as we generate two in one; first a whole table
and then two update tables. The first is a table with a bad counter in the
last record to test that we don't load that table and error. The second
is a good update. The same applies to the meid map; first has a bad counter
and some bad records to drive coverage testing. The end should leave a good
meid map in the table.
+
+ Once the file is generated, it is forced in via static read and the file
+ is unlinked.
*/
static void gen_rt( uta_ctx_t* ctx ) {
int fd;
}
rt_stuff =
+ "updatert|start\n" // update check before whole table received
+ "updatert|end\n"
"newrt|end\n" // end of table check before start of table found
"# comment to drive full comment test\n"
"\n" // handle blank lines
rt_stuff = // add an meid map which will fail
"meid_map | start\n"
- "mme_ar | e2t-1 | one two three four\n"
+ "mme_ar | e2t-1 | one two three four\r" // also test bloody apple way with \r
"mme_del | one two\n"
"mme_del \n" // short entries drive various checks for coverage
- "mme_ar \n"
- "mme_ar | e2t-0 \n"
+ "mme_ar \n"
+ "mme_ar | e2t-0 \n"
"meid_map | end | 5\n"; // this will fail as the short recs don't "count"
write( fd, rt_stuff, strlen( rt_stuff ) );
"mme_del | meid11 meid12 meid13\n" // includes a non-existant meid
"meid_map | end | 1\n";
write( fd, rt_stuff, strlen( rt_stuff ) );
-
+
close( fd );
read_static_rt( ctx, 1 ); // force in verbose mode to see stats on tty if failure
unlink( "utesting.rt" );
/*
Generate a custom route table file using the buffer passed in.
+ Then force it to be read into the current route table. The file
+ is unlinked when finished.
*/
static void gen_custom_rt( uta_ctx_t* ctx, char* buf ) {
int fd;
- char* rt_stuff; // strings for the route table
- fd = open( "utesting.rt", O_WRONLY | O_CREAT, 0600 );
+ fd = open( "Xutesting.rt", O_WRONLY | O_CREAT, 0600 );
if( fd < 0 ) {
fprintf( stderr, "<BUGGERED> unable to open file for testing route table gen\n" );
return;
}
- setenv( "RMR_SEED_RT", "utesting.rt", 1 );
+ setenv( "RMR_SEED_RT", "Xutesting.rt", 1 );
- write( fd, rt_stuff, strlen( buf ) );
+ fprintf( stderr, "<INFO> creating custom rt from buffer (%d bytes)\n", (int) strlen (buf ) );
+ if( write( fd, buf, strlen( buf ) ) != strlen( buf ) ) {
+ fprintf( stderr, "<BUGGERED> write failed: %s\n", strerror( errno ) );
+ }
close( fd );
read_static_rt( ctx, 1 ); // force in verbose mode to see stats on tty if failure
- unlink( "utesting.rt" );
+ unlink( "Xutesting.rt" );
}