From ff38fea645e69e8f4d84f2691dac3116d9bac1c4 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Wed, 15 Sep 2010 17:15:44 +0100 Subject: [PATCH] generator: Add TestOutputDevice. This is for testing functions that return a device or partition name, so that we can compare the return value with the canonical device name (eg. "/dev/vda1" == "/dev/sda1"). --- generator/generator_capitests.ml | 13 +++++++++++++ generator/generator_types.ml | 6 ++++++ generator/generator_utils.ml | 1 + 3 files changed, 20 insertions(+) diff --git a/generator/generator_capitests.ml b/generator/generator_capitests.ml index 044c70d..594c867 100644 --- a/generator/generator_capitests.ml +++ b/generator/generator_capitests.ml @@ -685,6 +685,19 @@ and generate_one_test_body name i test_name init test = in List.iter (generate_test_command_call test_name) seq; generate_test_command_call ~test test_name last + | TestOutputDevice (seq, expected) -> + pr " /* TestOutputDevice for %s (%d) */\n" name i; + pr " const char *expected = \"%s\";\n" (c_quote expected); + let seq, last = get_seq_last seq in + let test () = + pr " r[5] = 's';\n"; + pr " if (STRNEQ (r, expected)) {\n"; + pr " fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r);\n" test_name; + pr " return -1;\n"; + pr " }\n" + in + List.iter (generate_test_command_call test_name) seq; + generate_test_command_call ~test test_name last | TestLastFail seq -> pr " /* TestLastFail for %s (%d) */\n" name i; let seq, last = get_seq_last seq in diff --git a/generator/generator_types.ml b/generator/generator_types.ml index 49d3792..0ed6f74 100644 --- a/generator/generator_types.ml +++ b/generator/generator_types.ml @@ -266,6 +266,12 @@ and test = *) | TestOutputFileMD5 of seq * string + (* Run the command sequence and expect the output of the final + * command to be a string which is a block device name (we don't + * check the 5th character of the string, so "/dev/sda" == "/dev/vda"). + *) + | TestOutputDevice of seq * string + (* Run the command sequence and expect the final command (only) * to fail. *) diff --git a/generator/generator_utils.ml b/generator/generator_utils.ml index 329e6ce..2bdcc0d 100644 --- a/generator/generator_utils.ml +++ b/generator/generator_utils.ml @@ -240,6 +240,7 @@ let seq_of_test = function | TestOutputLength (s, _) | TestOutputBuffer (s, _) | TestOutputStruct (s, _) | TestOutputFileMD5 (s, _) + | TestOutputDevice (s, _) | TestLastFail s -> s let c_quote str = -- 1.8.3.1