golang: Capitalize fields in OptArgs* structs.

Otherwise those fields aren't accessible outside the package.  We
didn't catch this because all tests run in the same package.
This commit is contained in:
Richard W.M. Jones
2013-07-04 13:49:01 +01:00
parent a31926bd75
commit 86c1e53ee6
2 changed files with 39 additions and 36 deletions

View File

@@ -270,20 +270,21 @@ func return_hashtable (argv **C.char) map[string]string {
pr "type Optargs%s struct {\n" go_name;
List.iter (
fun optarg ->
let n = name_of_optargt optarg in
pr " /* %s field is ignored unless %s_is_set == true */\n" n n;
pr " %s_is_set bool\n" n;
let cn = String.capitalize (name_of_optargt optarg) in
pr " /* %s field is ignored unless %s_is_set == true */\n"
cn cn;
pr " %s_is_set bool\n" cn;
match optarg with
| OBool n ->
pr " %s bool\n" n
| OInt n ->
pr " %s int\n" n
| OInt64 n ->
pr " %s int64\n" n
| OString n ->
pr " %s string\n" n
| OStringList n ->
pr " %s []string\n" n
| OBool _ ->
pr " %s bool\n" cn
| OInt _ ->
pr " %s int\n" cn
| OInt64 _ ->
pr " %s int64\n" cn
| OString _ ->
pr " %s string\n" cn
| OStringList _ ->
pr " %s []string\n" cn
) optargs;
pr "}\n";
);
@@ -395,21 +396,23 @@ func return_hashtable (argv **C.char) map[string]string {
List.iter (
fun optarg ->
let n = name_of_optargt optarg in
pr " if optargs.%s_is_set {\n" n;
let cn = String.capitalize n in
pr " if optargs.%s_is_set {\n" cn;
pr " c_optargs.bitmask |= C.%s_%s_BITMASK\n"
f.c_optarg_prefix (String.uppercase n);
(match optarg with
| OBool n ->
pr " if optargs.%s { c_optargs.%s = 1 } else { c_optargs.%s = 0}\n" n n n
| OInt n ->
pr " c_optargs.%s = C.int (optargs.%s)\n" n n
| OInt64 n ->
pr " c_optargs.%s = C.int64_t (optargs.%s)\n" n n
| OString n ->
pr " c_optargs.%s = C.CString (optargs.%s)\n" n n;
| OBool _ ->
pr " if optargs.%s { c_optargs.%s = 1 } else { c_optargs.%s = 0}\n" cn n n
| OInt _ ->
pr " c_optargs.%s = C.int (optargs.%s)\n" n cn
| OInt64 _ ->
pr " c_optargs.%s = C.int64_t (optargs.%s)\n" n cn
| OString _ ->
pr " c_optargs.%s = C.CString (optargs.%s)\n" n cn;
pr " defer C.free (unsafe.Pointer (c_optargs.%s))\n" n
| OStringList n ->
pr " c_optargs.%s = arg_string_list (optargs.%s)\n" n n;
| OStringList _ ->
pr " c_optargs.%s = arg_string_list (optargs.%s)\n"
n cn;
pr " defer free_string_list (c_optargs.%s)\n" n
);
pr " }\n"

View File

@@ -30,28 +30,28 @@ func Test070Optargs (t *testing.T) {
t.Errorf ("%s", err)
}
err = g.Add_drive ("/dev/null", &OptargsAdd_drive{
readonly_is_set: true,
readonly: true,
Readonly_is_set: true,
Readonly: true,
})
if err != nil {
t.Errorf ("%s", err)
}
err = g.Add_drive ("/dev/null", &OptargsAdd_drive{
readonly_is_set: true,
readonly: true,
format_is_set: true,
format: "raw",
Readonly_is_set: true,
Readonly: true,
Format_is_set: true,
Format: "raw",
})
if err != nil {
t.Errorf ("%s", err)
}
err = g.Add_drive ("/dev/null", &OptargsAdd_drive{
readonly_is_set: true,
readonly: true,
format_is_set: true,
format: "raw",
iface_is_set: true,
iface: "virtio",
Readonly_is_set: true,
Readonly: true,
Format_is_set: true,
Format: "raw",
Iface_is_set: true,
Iface: "virtio",
})
if err != nil {
t.Errorf ("%s", err)