X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=tests%2Fui%2Fsyntax-gen-test.c;fp=tests%2Fui%2Fsyntax-gen-test.c;h=2c669290df8e7de8b4661c7261191a3028b51dd4;hb=8925b93f70213a7b88521ea134d0c7daf18bb1a5;hp=0000000000000000000000000000000000000000;hpb=2e4f99b049133c801ca4feffddb86bbf33de3978;p=pspp diff --git a/tests/ui/syntax-gen-test.c b/tests/ui/syntax-gen-test.c new file mode 100644 index 0000000000..2c669290df --- /dev/null +++ b/tests/ui/syntax-gen-test.c @@ -0,0 +1,41 @@ +#include + +#include "ui/syntax-gen.h" + +#include + +static void +test_runner (const char *format, ...) +{ + struct string syntax; + va_list args; + va_start (args, format); + + ds_init_empty (&syntax); + + syntax_gen_pspp_valist (&syntax, format, args); + + va_end (args); + + puts (ds_cstr (&syntax)); + + ds_destroy (&syntax); +} + +int +main (void) +{ + test_runner ("A simple string: %ssEND", "Hello world"); + test_runner ("A syntax string: %sqEND", "Hello world"); + test_runner ("A syntax string containing \": %sqEND", "here\"is the quote"); + test_runner ("A syntax string containing non-printables: %sqEND", "A CtrlL char"); + test_runner ("An integer: %dEND", 98765); + test_runner ("A floating point number: %gEND", 3.142); + test_runner ("A floating point number with default precision: %fEND", 1.234); + test_runner ("A literal %%"); + + test_runner ("and %ss a %sq of %d different %f examples %g of 100%% conversions.", + "finally", "concatination", 6, 20.309, 23.09); + + return 0; +}