summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-11-09 17:47:23 +0000
committerRichard W.M. Jones <rjones@redhat.com>2011-11-09 21:21:48 +0000
commitaf2b0378bbb178a4e3db326ac3082d66170fcafc (patch)
tree76ff6b57df06dcf3d54dcbd0de43e29d35d46c02
parent271f8e4b70e4acf2db96f6fe6317fda327fa5f2e (diff)
downloadlibguestfs-af2b0378bbb178a4e3db326ac3082d66170fcafc.tar.gz
libguestfs-af2b0378bbb178a4e3db326ac3082d66170fcafc.tar.xz
libguestfs-af2b0378bbb178a4e3db326ac3082d66170fcafc.zip
tests: Fix bitmask parameter when testing optional arguments.
The bitmask was being constructed backwards(!) As a result, any test which tested optional arguments didn't work. There are very few such tests and they happened not to be affected by this.
-rw-r--r--generator/generator_capitests.ml13
1 files changed, 7 insertions, 6 deletions
diff --git a/generator/generator_capitests.ml b/generator/generator_capitests.ml
index 2cad2aec..7bfd87cd 100644
--- a/generator/generator_capitests.ml
+++ b/generator/generator_capitests.ml
@@ -776,8 +776,8 @@ and generate_test_command_call ?(expect_error = false) ?test test_name cmd =
if optargs <> [] then (
pr " struct guestfs_%s_argv optargs;\n" name;
- let bitmask = List.fold_left (
- fun bitmask optarg ->
+ let _, bitmask = List.fold_left (
+ fun (shift, bitmask) optarg ->
let is_set =
match optarg with
| Bool n, "" -> false
@@ -803,10 +803,11 @@ and generate_test_command_call ?(expect_error = false) ?test test_name cmd =
| String n, arg ->
pr " optargs.%s = \"%s\";\n" n (c_quote arg); true
| _ -> assert false in
- let bitmask = Int64.shift_left bitmask 1 in
- let bitmask = if is_set then Int64.succ bitmask else bitmask in
- bitmask
- ) 0L optargs in
+ let bit = if is_set then Int64.shift_left 1L shift else 0L in
+ let bitmask = Int64.logor bitmask bit in
+ let shift = shift + 1 in
+ (shift, bitmask)
+ ) (0, 0L) optargs in
pr " optargs.bitmask = UINT64_C(0x%Lx);\n" bitmask;
);