8197
8197
nih_free (err);
8201
test_stanza_usage (void)
8208
TEST_FUNCTION ("stanza_usage");
8210
/* Check that a usage stanza with an argument results in it
8211
* being stored in the job.
8213
TEST_FEATURE ("with single argument");
8214
strcpy (buf, "usage \"stanza usage test message\"\n");
8219
job = parse_job (NULL, NULL, NULL, "test", buf, strlen (buf),
8222
if (test_alloc_failed) {
8223
TEST_EQ_P (job, NULL);
8225
err = nih_error_get ();
8226
TEST_EQ (err->number, ENOMEM);
8232
TEST_EQ (pos, strlen (buf));
8233
TEST_EQ (lineno, 2);
8235
TEST_ALLOC_SIZE (job, sizeof (JobClass));
8237
TEST_ALLOC_PARENT (job->usage, job);
8238
TEST_EQ_STR (job->usage, "stanza usage test message");
8244
/* Check that the last of multiple usage stanzas is used.
8246
TEST_FEATURE ("with multiple stanzas");
8247
strcpy (buf, "usage \"stanza usage original\"\n");
8248
strcat (buf, "usage \"stanza usage test message\"\n");
8253
job = parse_job (NULL, NULL, NULL, "test", buf, strlen (buf),
8256
if (test_alloc_failed) {
8257
TEST_EQ_P (job, NULL);
8259
err = nih_error_get ();
8260
TEST_EQ (err->number, ENOMEM);
8266
TEST_EQ (pos, strlen (buf));
8267
TEST_EQ (lineno, 3);
8269
TEST_ALLOC_SIZE (job, sizeof (JobClass));
8271
TEST_ALLOC_PARENT (job->usage, job);
8272
TEST_EQ_STR (job->usage, "stanza usage test message");
8278
/* Check that a usage stanza without an argument results in
8281
TEST_FEATURE ("with missing argument");
8282
strcpy (buf, "usage\n");
8286
job = parse_job (NULL, NULL, NULL, "test", buf, strlen (buf), &pos, &lineno);
8288
TEST_EQ_P (job, NULL);
8290
err = nih_error_get ();
8291
TEST_EQ (err->number, NIH_CONFIG_EXPECTED_TOKEN);
8293
TEST_EQ (lineno, 1);
8297
/* Check that a usage stanza with an extra second argument
8298
* results in a syntax error.
8300
TEST_FEATURE ("with extra argument");
8301
strcpy (buf, "usage stanza usage test message\n");
8305
job = parse_job (NULL, NULL, NULL, "test", buf, strlen (buf), &pos, &lineno);
8307
TEST_EQ_P (job, NULL);
8309
err = nih_error_get ();
8310
TEST_EQ (err->number, NIH_CONFIG_UNEXPECTED_TOKEN);
8312
TEST_EQ (lineno, 1);
8201
8317
main (int argc,