mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
Haskell bindings: Implement bindtests.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -54,6 +54,7 @@ examples/to-xml
|
||||
fish/guestfish
|
||||
guestfish.1
|
||||
guestfs.3
|
||||
haskell/Bindtests
|
||||
haskell/Guestfs005Load
|
||||
haskell/Guestfs010Launch
|
||||
haskell/Guestfs050LVCreate
|
||||
|
||||
40
haskell/Bindtests.hs
Normal file
40
haskell/Bindtests.hs
Normal file
@@ -0,0 +1,40 @@
|
||||
{- libguestfs generated file
|
||||
WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
|
||||
ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
|
||||
|
||||
Copyright (C) 2009 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.
|
||||
-}
|
||||
|
||||
module Bindtests where
|
||||
import qualified Guestfs
|
||||
|
||||
main = do
|
||||
g <- Guestfs.create
|
||||
Guestfs.test0 g "abc" (Just "def") [] False 0 "123" "456"
|
||||
Guestfs.test0 g "abc" Nothing [] False 0 "123" "456"
|
||||
Guestfs.test0 g "" (Just "def") [] False 0 "123" "456"
|
||||
Guestfs.test0 g "" (Just "") [] False 0 "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] False 0 "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1","2"] False 0 "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] True 0 "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] False (-1) "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] False (-2) "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] False 1 "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] False 2 "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] False 4095 "123" "456"
|
||||
Guestfs.test0 g "abc" (Just "def") ["1"] False 0 "" ""
|
||||
putStrLn "EOF"
|
||||
@@ -15,7 +15,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
EXTRA_DIST = *.hs
|
||||
EXTRA_DIST = *.hs run-bindtests
|
||||
|
||||
CLEANFILES = *~
|
||||
|
||||
@@ -26,10 +26,15 @@ TESTS_ENVIRONMENT = \
|
||||
LIBGUESTFS_PATH=$(top_builddir)/appliance \
|
||||
$(VG)
|
||||
|
||||
TESTS = Guestfs005Load Guestfs010Launch Guestfs050LVCreate
|
||||
TESTS = run-bindtests Guestfs005Load Guestfs010Launch Guestfs050LVCreate
|
||||
|
||||
check_DATA = Bindtests
|
||||
|
||||
GHCFLAGS = -I$(abs_top_builddir)/src -L$(abs_top_builddir)/src/.libs
|
||||
|
||||
Bindtests: Bindtests.hs Guestfs.hs
|
||||
$(GHC) $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
|
||||
|
||||
Guestfs005Load: Guestfs005Load.hs Guestfs.hs
|
||||
$(GHC) $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs
|
||||
|
||||
|
||||
23
haskell/run-bindtests
Executable file
23
haskell/run-bindtests
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh -
|
||||
# libguestfs Haskell bindings
|
||||
# Copyright (C) 2009 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
set -e
|
||||
|
||||
./Bindtests > bindtests.tmp
|
||||
diff -u ../bindtests bindtests.tmp
|
||||
|
||||
@@ -7806,7 +7806,38 @@ public class Bindtests {
|
||||
"
|
||||
|
||||
and generate_haskell_bindtests () =
|
||||
() (* XXX Haskell bindings need to be fleshed out. *)
|
||||
generate_header HaskellStyle GPLv2;
|
||||
|
||||
pr "\
|
||||
module Bindtests where
|
||||
import qualified Guestfs
|
||||
|
||||
main = do
|
||||
g <- Guestfs.create
|
||||
";
|
||||
|
||||
let mkargs args =
|
||||
String.concat " " (
|
||||
List.map (
|
||||
function
|
||||
| CallString s -> "\"" ^ s ^ "\""
|
||||
| CallOptString None -> "Nothing"
|
||||
| CallOptString (Some s) -> sprintf "(Just \"%s\")" s
|
||||
| CallStringList xs ->
|
||||
"[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
|
||||
| CallInt i when i < 0 -> "(" ^ string_of_int i ^ ")"
|
||||
| CallInt i -> string_of_int i
|
||||
| CallBool true -> "True"
|
||||
| CallBool false -> "False"
|
||||
) args
|
||||
)
|
||||
in
|
||||
|
||||
generate_lang_bindtests (
|
||||
fun f args -> pr " Guestfs.%s g %s\n" f (mkargs args)
|
||||
);
|
||||
|
||||
pr " putStrLn \"EOF\"\n"
|
||||
|
||||
(* Language-independent bindings tests - we do it this way to
|
||||
* ensure there is parity in testing bindings across all languages.
|
||||
@@ -8036,7 +8067,7 @@ Run it from the top source directory using the command
|
||||
generate_haskell_hs ();
|
||||
close ();
|
||||
|
||||
let close = output_to "haskell/bindtests.hs" in
|
||||
let close = output_to "haskell/Bindtests.hs" in
|
||||
generate_haskell_bindtests ();
|
||||
close ();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user