[Libguestfs] [PATCH] tests: Make '080' be an official test of the guestfs_version API.

Richard W.M. Jones rjones at redhat.com
Fri Feb 12 14:22:37 UTC 2016


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




More information about the Libguestfs mailing list