diff --git a/java/Makefile.am b/java/Makefile.am index 01836ad80..b0296b312 100644 --- a/java/Makefile.am +++ b/java/Makefile.am @@ -35,11 +35,16 @@ java_sources = \ java_tests = \ Bindtests.java \ + t/GuestFS010Load.java \ t/GuestFS020Create.java \ + t/GuestFS030CreateFlags.java \ + t/GuestFS040CreateMultiple.java \ + t/GuestFS050HandleProperties.java \ t/GuestFS070OptArgs.java \ t/GuestFS100Launch.java \ t/GuestFS410CloseEvent.java \ t/GuestFS420LogMessages.java \ + t/GuestFS430ProgressMessages.java \ t/GuestFS800RHBZ1073906.java EXTRA_DIST = \ diff --git a/java/t/GuestFS010Load.java b/java/t/GuestFS010Load.java new file mode 100644 index 000000000..9cc08a7d6 --- /dev/null +++ b/java/t/GuestFS010Load.java @@ -0,0 +1,25 @@ +/* libguestfs Java bindings + * Copyright (C) 2014 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +import com.redhat.et.libguestfs.*; + +public class GuestFS010Load { + public static void main (String[] argv) + { + } +} diff --git a/java/t/GuestFS030CreateFlags.java b/java/t/GuestFS030CreateFlags.java new file mode 100644 index 000000000..d9f850bbd --- /dev/null +++ b/java/t/GuestFS030CreateFlags.java @@ -0,0 +1,43 @@ +/* libguestfs Java bindings + * Copyright (C) 2014 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +import java.util.Map; +import java.util.HashMap; +import com.redhat.et.libguestfs.*; + +public class GuestFS030CreateFlags { + public static void main (String[] argv) + { + try { + @SuppressWarnings("serial") Map optargs = + new HashMap() { + { + put ("close_on_exit", Boolean.TRUE); + put ("environment", Boolean.FALSE); + } + }; + GuestFS g = new GuestFS (optargs); + g.parse_environment (); + g.close (); + } + catch (Exception exn) { + System.err.println (exn); + System.exit (1); + } + } +} diff --git a/java/t/GuestFS040CreateMultiple.java b/java/t/GuestFS040CreateMultiple.java new file mode 100644 index 000000000..7346ee144 --- /dev/null +++ b/java/t/GuestFS040CreateMultiple.java @@ -0,0 +1,37 @@ +/* libguestfs Java bindings + * Copyright (C) 2014 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +import com.redhat.et.libguestfs.*; + +public class GuestFS040CreateMultiple { + public static void main (String[] argv) + { + try { + GuestFS g1 = new GuestFS (); + GuestFS g2 = new GuestFS (); + GuestFS g3 = new GuestFS (); + g1.close (); + g2.close (); + g3.close (); + } + catch (Exception exn) { + System.err.println (exn); + System.exit (1); + } + } +} diff --git a/java/t/GuestFS050HandleProperties.java b/java/t/GuestFS050HandleProperties.java new file mode 100644 index 000000000..5398595bf --- /dev/null +++ b/java/t/GuestFS050HandleProperties.java @@ -0,0 +1,41 @@ +/* libguestfs Java bindings + * Copyright (C) 2014 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +import com.redhat.et.libguestfs.*; + +public class GuestFS050HandleProperties { + public static void main (String[] argv) + { + try { + GuestFS g = new GuestFS (); + boolean b = g.get_verbose (); + g.set_verbose (b); + b = g.get_trace (); + g.set_trace (b); + int i = g.get_memsize (); + g.set_memsize (i); + String s = g.get_path (); + g.set_path (s); + g.close (); + } + catch (Exception exn) { + System.err.println (exn); + System.exit (1); + } + } +} diff --git a/java/t/GuestFS430ProgressMessages.java b/java/t/GuestFS430ProgressMessages.java new file mode 100644 index 000000000..112753099 --- /dev/null +++ b/java/t/GuestFS430ProgressMessages.java @@ -0,0 +1,80 @@ +/* libguestfs Java bindings + * Copyright (C) 2014 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +import java.io.*; +import java.util.HashMap; +import com.redhat.et.libguestfs.*; + +public class GuestFS430ProgressMessages +{ + static class CallbackEvent implements EventCallback + { + private int callback_invoked = 0; + + public void event (long event, int eh, String buffer, long[] array) + { + callback_invoked++; + } + + public int getCallbackInvoked () + { + return callback_invoked; + } + + public void resetCallbackInvoked () + { + callback_invoked = 0; + } + } + + public static void main (String[] argv) + { + try { + GuestFS g = new GuestFS (); + g.add_drive ("/dev/null"); + g.launch (); + + // Grab all messages into an event handler that just + // prints each event. + CallbackEvent e = new CallbackEvent (); + int eh = g.set_event_callback (e, GuestFS.EVENT_PROGRESS); + + String[] args = { "5" }; + String r = g.debug ("progress", args); + assert r.equals ("ok"); + assert e.getCallbackInvoked () > 0; + + e.resetCallbackInvoked (); + g.delete_event_callback (eh); + r = g.debug ("progress", args); + assert r.equals ("ok"); + assert e.getCallbackInvoked () == 0; + + g.set_event_callback (e, GuestFS.EVENT_PROGRESS); + r = g.debug ("progress", args); + assert r.equals ("ok"); + assert e.getCallbackInvoked () > 0; + + g.close (); + } + catch (Exception exn) { + System.err.println (exn); + System.exit (1); + } + } +}