Imported Upstream version 3.1.0
[debian/amanda] / installcheck / noop.pl
diff --git a/installcheck/noop.pl b/installcheck/noop.pl
new file mode 100644 (file)
index 0000000..285118f
--- /dev/null
@@ -0,0 +1,68 @@
+# Copyright (c) 2010 Zmanda, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 as published
+# by the Free Software Foundation.
+#
+# 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.,
+# 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# Contact information: Zmanda Inc, 465 S. Mathilda Ave., Suite 300
+# Sunnyvale, CA 94086, USA, or: http://www.zmanda.com
+
+use Test::More tests => 6;
+
+use strict;
+use warnings;
+
+use lib '@amperldir@';
+use Installcheck;
+use Installcheck::ClientService;
+use Amanda::Debug;
+use Amanda::MainLoop;
+
+Amanda::Debug::dbopen("installcheck");
+Installcheck::log_test_output();
+
+{
+    my $service;
+    my ($got_options, $got_eof, $process_done);
+
+    $got_options = sub {
+       pass("got OPTIONS");
+
+       $service->expect('main',
+           [ eof => $got_eof ]);
+    };
+
+    # note that this gets called four times, in arbitrary order
+    $got_eof = sub {
+       pass("got EOF");
+    };
+
+    $process_done = sub {
+       my ($exitstatus) = @_;
+       is($exitstatus, 0,
+           "exit status 0");
+       Amanda::MainLoop::quit();
+    };
+
+    $service = Installcheck::ClientService->new(
+           service => 'noop',
+           emulate => 'amandad',
+           process_done => $process_done);
+    # no REQ packet body
+    $service->close('main', 'w');
+    $service->expect('main',
+       [ re => qr/OPTIONS features=[0-9a-f]+;\n/, $got_options ]);
+    $service->expect('stream1', [ eof => $got_eof ]);
+    $service->expect('stream2', [ eof => $got_eof ]);
+    $service->expect('stream3', [ eof => $got_eof ]);
+    Amanda::MainLoop::run();
+}