diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2011-11-09 17:47:23 +0000 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2011-11-09 21:21:48 +0000 |
commit | af2b0378bbb178a4e3db326ac3082d66170fcafc (patch) | |
tree | 76ff6b57df06dcf3d54dcbd0de43e29d35d46c02 | |
parent | 271f8e4b70e4acf2db96f6fe6317fda327fa5f2e (diff) | |
download | libguestfs-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.ml | 13 |
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; ); |