Useful because it tests returning a single structure.
---
docs/guestfs-hacking.pod | 1 +
ocaml/Makefile.am | 2 ++
ocaml/t/guestfs_080_version.ml | 27 +++++++++++++++++++++++++++
perl/t/080-version.t | 36 ++++++++++++++++++++++++++++++++++++
4 files changed, 66 insertions(+)
create mode 100644 ocaml/t/guestfs_080_version.ml
create mode 100644 perl/t/080-version.t
diff --git a/docs/guestfs-hacking.pod b/docs/guestfs-hacking.pod
index ae667c9..ecd10bf 100644
--- a/docs/guestfs-hacking.pod
+++ b/docs/guestfs-hacking.pod
@@ -201,6 +201,7 @@ This is the numbering scheme used by the tests:
060 explicit close
065 implicit close (in GC'd languages)
070 optargs
+ 080 version
- 100 launch, create partitions and LVs and filesystems
diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am
index b79bcad..bc1d130 100644
--- a/ocaml/Makefile.am
+++ b/ocaml/Makefile.am
@@ -116,6 +116,7 @@ test_progs_bc = \
t/guestfs_060_explicit_close.bc \
t/guestfs_065_implicit_close.bc \
t/guestfs_070_optargs.bc \
+ t/guestfs_080_version.bc \
t/guestfs_410_close_event.bc \
t/guestfs_420_log_messages.bc
@@ -128,6 +129,7 @@ test_progs_opt = \
t/guestfs_060_explicit_close.opt \
t/guestfs_065_implicit_close.opt \
t/guestfs_070_optargs.opt \
+ t/guestfs_080_version.opt \
t/guestfs_410_close_event.opt \
t/guestfs_420_log_messages.opt
diff --git a/ocaml/t/guestfs_080_version.ml b/ocaml/t/guestfs_080_version.ml
new file mode 100644
index 0000000..ff10485
--- /dev/null
+++ b/ocaml/t/guestfs_080_version.ml
@@ -0,0 +1,27 @@
+(* libguestfs OCaml tests
+ * Copyright (C) 2009-2016 Red Hat Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *)
+
+let () =
+ let g = new Guestfs.guestfs () in
+ let version = g#version () in
+ assert (version.Guestfs.major = 1_L)
+ (* In other bindings, we may do additional tests on dynamic types
+ * here, but those are not necessary in OCaml.
+ *)
+
+let () = Gc.compact ()
diff --git a/perl/t/080-version.t b/perl/t/080-version.t
new file mode 100644
index 0000000..6a80fe9
--- /dev/null
+++ b/perl/t/080-version.t
@@ -0,0 +1,36 @@
+# libguestfs Perl bindings -*- perl -*-
+# Copyright (C) 2016 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+use strict;
+use warnings;
+use Test::More tests => 5;
+
+use Sys::Guestfs;
+
+my $g = Sys::Guestfs->new ();
+ok ($g);
+
+my %version = $g->version;
+ok (1);
+
+is ($version{major}, 1);
+like ($version{minor}, qr/^\d+$/);
+like ($version{release}, qr/^\d+$/);
+
+# XXX We could try to check that $version{extra} is a string, but perl
+# doesn't have a distinction between string and int, and in any case
+# it's possible (although unusual) for $version{extra} to be an int.
--
2.5.0