Add tests...most fail because they aren't setup for Webmin versions, and os_list...
authorJoe Cooper <joe@virtualmin.com>
Mon, 11 Aug 2008 23:29:49 +0000 (23:29 +0000)
committerJoe Cooper <joe@virtualmin.com>
Mon, 11 Aug 2008 23:29:49 +0000 (23:29 +0000)
34 files changed:
t/data/centos-4.issue [new file with mode: 0644]
t/data/centos-4.os [new file with mode: 0644]
t/data/centos-5.issue [new file with mode: 0644]
t/data/centos-5.os [new file with mode: 0644]
t/data/debian-3.1.issue [new file with mode: 0644]
t/data/debian-3.1.os [new file with mode: 0644]
t/data/debian-4.0.issue [new file with mode: 0644]
t/data/debian-4.0.os [new file with mode: 0644]
t/data/fedora-5.issue [new file with mode: 0644]
t/data/fedora-5.os [new file with mode: 0644]
t/data/fedora-6.issue [new file with mode: 0644]
t/data/fedora-6.os [new file with mode: 0644]
t/data/fedora-7.issue [new file with mode: 0644]
t/data/fedora-7.os [new file with mode: 0644]
t/data/freebsd-7.0.issue [new file with mode: 0644]
t/data/freebsd-7.0.os [new file with mode: 0644]
t/data/rhel-3es.issue [new file with mode: 0644]
t/data/rhel-3es.os [new file with mode: 0644]
t/data/rhel-4as.issue [new file with mode: 0644]
t/data/rhel-4as.os [new file with mode: 0644]
t/data/rhel-4es.issue [new file with mode: 0644]
t/data/rhel-4es.os [new file with mode: 0644]
t/data/rhel-5.issue [new file with mode: 0644]
t/data/rhel-5.os [new file with mode: 0644]
t/data/slackware-10.issue [new file with mode: 0644]
t/data/slackware-10.os [new file with mode: 0644]
t/data/ubuntu-6.06.1.issue [new file with mode: 0644]
t/data/ubuntu-6.06.1.os [new file with mode: 0644]
t/data/ubuntu-8.04.issue [new file with mode: 0644]
t/data/ubuntu-8.04.os [new file with mode: 0644]
t/lib_os_compare.t [new file with mode: 0644]
t/os_compare.t [new file with mode: 0644]
t/return.t [new file with mode: 0644]
t/utils.t [new file with mode: 0644]

diff --git a/t/data/centos-4.issue b/t/data/centos-4.issue
new file mode 100644 (file)
index 0000000..60e5514
--- /dev/null
@@ -0,0 +1 @@
+CentOS release 4.3 (Final)
diff --git a/t/data/centos-4.os b/t/data/centos-4.os
new file mode 100644 (file)
index 0000000..64583f0
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='redhat-linux'
+os_version='12.3'
+real_os_type='CentOS Linux'
+real_os_version='4.3'
diff --git a/t/data/centos-5.issue b/t/data/centos-5.issue
new file mode 100644 (file)
index 0000000..e1d8ca0
--- /dev/null
@@ -0,0 +1 @@
+CentOS release 5 (Final)
diff --git a/t/data/centos-5.os b/t/data/centos-5.os
new file mode 100644 (file)
index 0000000..0bf1085
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='redhat-linux'
+os_version='13'
+real_os_type='CentOS Linux'
+real_os_version='5'
diff --git a/t/data/debian-3.1.issue b/t/data/debian-3.1.issue
new file mode 100644 (file)
index 0000000..0117bcc
--- /dev/null
@@ -0,0 +1,2 @@
+Debian GNU/Linux 3.1 \n \l
+
diff --git a/t/data/debian-3.1.os b/t/data/debian-3.1.os
new file mode 100644 (file)
index 0000000..9d9be25
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='debian'
+os_version='3.1'
+real_os_type='Debian Linux'
+real_os_version='3.1'
diff --git a/t/data/debian-4.0.issue b/t/data/debian-4.0.issue
new file mode 100644 (file)
index 0000000..ccee04f
--- /dev/null
@@ -0,0 +1 @@
+Debian GNU/Linux 4.0
diff --git a/t/data/debian-4.0.os b/t/data/debian-4.0.os
new file mode 100644 (file)
index 0000000..92ddd6c
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='debian'
+os_version='4.0'
+real_os_type='Debian Linux'
+real_os_version='4.0'
diff --git a/t/data/fedora-5.issue b/t/data/fedora-5.issue
new file mode 100644 (file)
index 0000000..20cfa75
--- /dev/null
@@ -0,0 +1 @@
+Fedora release 5 (Bordeaux)
diff --git a/t/data/fedora-5.os b/t/data/fedora-5.os
new file mode 100644 (file)
index 0000000..e0809f0
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='fedora'
+os_version='5'
+real_os_type='Fedora Core Linux'
+real_os_version='Fedora 5'
diff --git a/t/data/fedora-6.issue b/t/data/fedora-6.issue
new file mode 100644 (file)
index 0000000..be2a1e5
--- /dev/null
@@ -0,0 +1 @@
+Fedora Core release 6 (Zod)
diff --git a/t/data/fedora-6.os b/t/data/fedora-6.os
new file mode 100644 (file)
index 0000000..ad7a350
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='fedora'
+os_version='6'
+real_os_type='Fedora Core Linux'
+real_os_version='Fedora 6'
diff --git a/t/data/fedora-7.issue b/t/data/fedora-7.issue
new file mode 100644 (file)
index 0000000..b777399
--- /dev/null
@@ -0,0 +1 @@
+Fedora release 7 (Moonshine)
diff --git a/t/data/fedora-7.os b/t/data/fedora-7.os
new file mode 100644 (file)
index 0000000..3638fba
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='fedora'
+os_version='7'
+real_os_type='Fedora Core Linux'
+real_os_version='Fedora 7'
diff --git a/t/data/freebsd-7.0.issue b/t/data/freebsd-7.0.issue
new file mode 100644 (file)
index 0000000..f1e7578
--- /dev/null
@@ -0,0 +1 @@
+FreeBSD freebsd.virtualmin 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
diff --git a/t/data/freebsd-7.0.os b/t/data/freebsd-7.0.os
new file mode 100644 (file)
index 0000000..953b3a3
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='freebsd'
+os_version='7.0'
+real_os_type='FreeBSD'
+real_os_version='7.0'
diff --git a/t/data/rhel-3es.issue b/t/data/rhel-3es.issue
new file mode 100644 (file)
index 0000000..809fe85
--- /dev/null
@@ -0,0 +1 @@
+Red Hat Enterprise Linux ES release 3 (Taroon Update 4)
diff --git a/t/data/rhel-3es.os b/t/data/rhel-3es.os
new file mode 100644 (file)
index 0000000..3fa9284
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='rhel'
+os_version='3'
+real_os_type='Red Hat Enterprise Linux'
+real_os_version='3ES'
diff --git a/t/data/rhel-4as.issue b/t/data/rhel-4as.issue
new file mode 100644 (file)
index 0000000..50ace04
--- /dev/null
@@ -0,0 +1 @@
+Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
diff --git a/t/data/rhel-4as.os b/t/data/rhel-4as.os
new file mode 100644 (file)
index 0000000..66500a7
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='rhel'
+os_version='4'
+real_os_type='Red Hat Enterprise Linux'
+real_os_version='4AS'
diff --git a/t/data/rhel-4es.issue b/t/data/rhel-4es.issue
new file mode 100644 (file)
index 0000000..a79e36d
--- /dev/null
@@ -0,0 +1 @@
+Red Hat Enterprise Linux ES release 4 (Nahant Update 6)
diff --git a/t/data/rhel-4es.os b/t/data/rhel-4es.os
new file mode 100644 (file)
index 0000000..fa27480
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='rhel'
+os_version='4'
+real_os_type='Red Hat Enterprise Linux'
+real_os_version='4ES'
diff --git a/t/data/rhel-5.issue b/t/data/rhel-5.issue
new file mode 100644 (file)
index 0000000..515506f
--- /dev/null
@@ -0,0 +1 @@
+Red Hat Enterprise Linux Server release 5 (Tikanga)
diff --git a/t/data/rhel-5.os b/t/data/rhel-5.os
new file mode 100644 (file)
index 0000000..131e3ec
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='rhel'
+os_version='5'
+real_os_type='Red Hat Enterprise Linux'
+real_os_version='5'
diff --git a/t/data/slackware-10.issue b/t/data/slackware-10.issue
new file mode 100644 (file)
index 0000000..c46558c
--- /dev/null
@@ -0,0 +1 @@
+Slackware 10.0.0
diff --git a/t/data/slackware-10.os b/t/data/slackware-10.os
new file mode 100644 (file)
index 0000000..5386228
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='slackware-linux'
+os_version='10.0.0'
+real_os_type='Slackware Linux'
+real_os_version='10.0.0'
diff --git a/t/data/ubuntu-6.06.1.issue b/t/data/ubuntu-6.06.1.issue
new file mode 100644 (file)
index 0000000..8d63026
--- /dev/null
@@ -0,0 +1 @@
+Ubuntu 6.06.1 LTS \n \l
diff --git a/t/data/ubuntu-6.06.1.os b/t/data/ubuntu-6.06.1.os
new file mode 100644 (file)
index 0000000..d8d1dfb
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='ubuntu'
+os_version='6.06'
+real_os_type='Ubuntu Linux'
+real_os_version='6.06.1'
diff --git a/t/data/ubuntu-8.04.issue b/t/data/ubuntu-8.04.issue
new file mode 100644 (file)
index 0000000..61b9906
--- /dev/null
@@ -0,0 +1,2 @@
+Ubuntu 8.04 \n \l
+
diff --git a/t/data/ubuntu-8.04.os b/t/data/ubuntu-8.04.os
new file mode 100644 (file)
index 0000000..72d800f
--- /dev/null
@@ -0,0 +1,4 @@
+os_type='ubuntu'
+os_version='8.04'
+real_os_type='Ubuntu Linux'
+real_os_version='8.04'
diff --git a/t/lib_os_compare.t b/t/lib_os_compare.t
new file mode 100644 (file)
index 0000000..c970774
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/perl -w
+use strict;
+use OsChooser;
+
+my $DATADIR = "t/data";
+
+# Get a list of the example OS definition files
+opendir(DIR, $DATADIR) || die "can't opendir $DATADIR: $!";
+my @files = grep { /\.os/ } readdir(DIR);
+closedir DIR;
+use Test::More qw(no_plan);
+use Test::Files;
+
+foreach my $file (sort @files) {
+       $file =~ /(.*)\.os$/;
+       my $osname = $1;
+       my $issue = "$DATADIR/$1.issue";
+       my $outfile = "t/outfile";
+       OsChooser::write_file($outfile,
+         OsChooser::oschooser("os_list.txt", 1, $issue));
+       compare_ok($outfile, "$DATADIR/$file", $osname);
+
+       # Cleanup
+       unlink $outfile;
+}
+
diff --git a/t/os_compare.t b/t/os_compare.t
new file mode 100644 (file)
index 0000000..bb2a9e9
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/perl -w
+# Test in command mode...
+use strict;
+
+my $DATADIR = "t/data";
+
+# Get a list of the example OS definition files
+opendir(DIR, $DATADIR) || die "can't opendir $DATADIR: $!";
+my @files = grep { /\.os/ } readdir(DIR);
+closedir DIR;
+use Test::More qw(no_plan);
+use Test::Files;
+
+foreach my $file (sort @files) {
+       $file =~ /(.*)\.os$/;
+       my $osname = $1;
+       my $issue = $1 . ".issue";
+       my $outfile = "t/outfile";
+       my $result = `./OsChooser.pm os_list.txt $outfile 1 $DATADIR/$issue`;
+       # Do something with $result
+       compare_ok($outfile, "$DATADIR/$file", $osname);
+
+       # Cleanup
+       unlink $outfile;
+}
+
diff --git a/t/return.t b/t/return.t
new file mode 100644 (file)
index 0000000..67febc5
--- /dev/null
@@ -0,0 +1,16 @@
+#!/usr/bin/perl -w
+# These tests just check to be sure all functions return something
+# It doesn't care what it is returned...so garbage can still pass,
+# as long as the garbage is the right data type.
+
+use strict;
+use Test::More tests => 3;
+
+use_ok( 'OsChooser' );
+
+isa_ok(\OsChooser::have_tty(), 'SCALAR');
+isa_ok(\OsChooser::has_command("cp"), 'SCALAR');
+
+# Don't know how to test the return from a die exception
+# Maybe use Test::Exception and put this into another test file
+#isa_ok(OsChooser::main(), 'SCALAR');
diff --git a/t/utils.t b/t/utils.t
new file mode 100644 (file)
index 0000000..0596236
--- /dev/null
+++ b/t/utils.t
@@ -0,0 +1,9 @@
+#!/usr/bin/perl -w
+# Test utility functions to be sure they do something utilitiful
+use strict;
+use Test::More tests => 1;
+use OsChooser;
+
+# Problematic...when run from harness, will not have tty
+ok(OsChooser::have_tty() == 1, "have_tty");
+