]> gitweb.michael.orlitzky.com - hath.git/commitdiff
Bulletproof the test suite and examples; version bump the cabal file. 0.2.3
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 22 Feb 2015 03:28:33 +0000 (22:28 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 22 Feb 2015 03:28:33 +0000 (22:28 -0500)
The examples in the man page used the "<<<" syntax which is specific
to bash. Now "echo 'foo' | hath ..." is used, and that should work in
any shell. The shelltest suite was updated to use the same.

The two ShellTests(Net) modules were also updated to run the
shelltests with an empty environment. This allowed the --color=never
argument to be removed from the tests themselves, since $GREP_OPTIONS
can't be populated.

12 files changed:
doc/man1/hath.1
hath.cabal
test/ShellTests.hs
test/ShellTestsNet.hs
test/shell-net/manpage-reversed.test
test/shell/manpage-barriers.test
test/shell/manpage-diffed.test
test/shell/manpage-duped.test
test/shell/manpage-listed.test
test/shell/manpage-reduced.test
test/shell/manpage-regexed.test
test/shell/match-class-c.test

index 207e87069da13933484907dc3a8c798c8bad647d..6e4ef3700b669ae7d4e69c00e0bebd36fd07cdb3 100644 (file)
@@ -40,7 +40,7 @@ This computes a (Perl-compatible) regular expression matching
 the input CIDR blocks. It's the default mode of operation.
 .P
 .nf
-.I $ hath <<< \(dq10.0.0.0/29 10.0.0.8/29\(dq
+.I $ echo \(dq10.0.0.0/29 10.0.0.8/29\(dq | hath
 ((10)\.(0)\.(0)\.(15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0))
 .fi
 .IP \(bu 2
@@ -51,7 +51,7 @@ eliminates redundant blocks. The output should be equivalent to
 the input, though.
 .P
 .nf
-.I $ hath reduced <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq
+.I $ echo \(dq10.0.0.0/24 10.0.1.0/24\(dq | hath reduced
 10.0.0.0/23
 .fi
 .IP \(bu 2
@@ -62,7 +62,7 @@ shows the ones that would get combined into larger blocks or are
 simply redundant.
 .P
 .nf
-.I $ hath duped <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq
+.I $ echo \(dq10.0.0.0/24 10.0.1.0/24\(dq | hath duped
 10.0.0.0/24
 10.0.1.0/24
 .fi
@@ -73,7 +73,7 @@ Shows what would change if you used reduce. Uses diff-like
 notation.
 .P
 .nf
-.I $ hath diffed <<< \(dq10.0.0.0/24 10.0.1.0/24\(dq
+.I $ echo \(dq10.0.0.0/24 10.0.1.0/24\(dq | hath diffed
 -10.0.0.0/24
 -10.0.1.0/24
 +10.0.0.0/23
@@ -84,7 +84,7 @@ notation.
 List the IP addresses contained within the given CIDRs.
 .P
 .nf
-.I $ hath listed <<< 192.168.0.240/29
+.I $ echo 192.168.0.240/29 | hath listed
 192.168.0.240
 192.168.0.241
 192.168.0.242
@@ -101,7 +101,7 @@ Perform reverse DNS (PTR) lookups on the IP addresses contained within
 the given CIDRs.
 .P
 .nf
-.I $ hath reversed <<< 198.41.0.4/30
+.I $ echo 198.41.0.4/30 | hath reversed
 198.41.0.4: a.root-servers.net.
 198.41.0.5:
 198.41.0.6: rs.internic.net.
@@ -114,7 +114,7 @@ runtime on the command line; for example, the following will perform
 25 lookups in parallel:
 .P
 .nf
-.I $ hath reversed +RTS -N25 <<< 198.41.0.4/24
+.I $ echo 198.41.0.4/24 | hath reversed +RTS -N25
 198.41.0.4: a.root-servers.net.
 198.41.0.5:
 198.41.0.6: rs.internic.net.
@@ -133,7 +133,7 @@ address, and this messes up e.g. \fIgrep -o\fR.
 Without \fB\-\-barriers\fR, you can match things you shouldn't:
 
 .nf
-.I $ echo 127.0.0.100 | grep -P $(hath <<< 127.0.0.1/32)
+.I $ echo 127.0.0.100 | grep -P $(echo 127.0.0.1/32 | hath)
 127.0.0.100
 .fi
 
@@ -141,7 +141,7 @@ Without \fB\-\-barriers\fR, you can match things you shouldn't:
 Using \fB\-\-barriers\fR can prevent this:
 
 .nf
-.I $ echo 127.0.0.100 | grep -P $(hath -b <<< 127.0.0.1/32)
+.I $ echo 127.0.0.100 | grep -P $(echo 127.0.0.1/32 | hath -b)
 .I $ echo $?
 1
 .fi
@@ -151,6 +151,6 @@ But, this may also cause the regex to match something that isn't an IP
 address:
 
 .nf
-.I $ echo x127.0.0.1x | grep -Po $(hath -b <<< 127.0.0.1/32)
+.I $ echo x127.0.0.1x | grep -Po $(echo 127.0.0.1/32 | hath -b)
 x127.0.0.1x
 .fi
index 4d5b6b8306ad790a6ee521534c7b1129566d9cde..9c3e831b212af6862e2f132222b36afff05ad077 100644 (file)
@@ -1,5 +1,5 @@
 name:           hath
-version:        0.2.2
+version:        0.2.3
 cabal-version:  >= 1.8
 author:         Michael Orlitzky
 maintainer:    Michael Orlitzky <michael@orlitzky.com>
index 1e884d5ef435eb5d7631e76046515a6d19d59724..6a55da0495d2fb7848e4da3730feca3c5e275f0e 100644 (file)
@@ -1,10 +1,24 @@
 module Main
 where
 
-import System.Process ( system )
+import System.Process (
+   CreateProcess( env ),
+   createProcess,
+   shell,
+   waitForProcess )
 import System.Exit ( exitWith )
 
 main :: IO ()
 main = do
-  result <- system "shelltest test/shell/*.test"
+  -- Get a CreateProcess object corresponding to our shell command.
+  let createproc = shell "shelltest test/shell/*.test"
+
+  -- But clear its environment before running the command.
+  let empty_env_createproc = createproc { env = Just [] }
+
+  -- Ignore stdin/stdout/stderr...
+  (_,_,_,hproc) <- createProcess empty_env_createproc
+
+  -- Now run the ProcessHandle and exit with its result.
+  result <- waitForProcess hproc
   exitWith result
index 7e3a95efee4c42c9864f0f0639566478a5a48f90..74acd737b0730021278335c8955e311ba82acb7d 100644 (file)
@@ -1,10 +1,24 @@
 module Main
 where
 
-import System.Process ( system )
+import System.Process (
+   CreateProcess( env ),
+   createProcess,
+   shell,
+   waitForProcess )
 import System.Exit ( exitWith )
 
 main :: IO ()
 main = do
-  result <- system "shelltest test/shell-net/*.test"
+  -- Get a CreateProcess object corresponding to our shell command.
+  let createproc = shell "shelltest test/shell-net/*.test"
+
+  -- But clear its environment before running the command.
+  let empty_env_createproc = createproc { env = Just [] }
+
+  -- Ignore stdin/stdout/stderr...
+  (_,_,_,hproc) <- createProcess empty_env_createproc
+
+  -- Now run the ProcessHandle and exit with its result.
+  result <- waitForProcess hproc
   exitWith result
index 00573fba1fb99ce929a2239681acb76e4ae19e09..f1bb68667912b8f3aa63ab7c6c76ec60803caf65 100644 (file)
@@ -1,5 +1,5 @@
 # Test the regexed example from the man page.
-dist/build/hath/hath reversed <<< "198.41.0.4/30"
+echo 198.41.0.4/30 | dist/build/hath/hath reversed
 >>>
 198.41.0.4: a.root-servers.net.
 198.41.0.5: 
index d50564b00983cfec0e06164f4bfac0cc3d6ba465..9ff3d5278739b64faff55d029514e8c63de6aef9 100644 (file)
@@ -1,18 +1,18 @@
 # Test the --barriers examples from the manpage.
 
 # The first one matches a line it probably shouldn't.
-grep -P --color=never $(dist/build/hath/hath <<< 127.0.0.1/32) <<< 127.0.0.100
+echo 127.0.0.100 | grep -P $(echo 127.0.0.1/32 | dist/build/hath/hath)
 >>>
 127.0.0.100
 >>>= 0
 
 # This one uses --barriers, and doesn't match that same line.
-grep -P $(dist/build/hath/hath -b <<< 127.0.0.1/32) <<< 127.0.0.100
+echo 127.0.0.100 | grep -P $(echo 127.0.0.1/32 | dist/build/hath/hath -b)
 >>>
 >>>= 1
 
 # But, using barriers makes the regexp match something it shouldn't.
-grep -Po --color=never $(dist/build/hath/hath -b <<< 127.0.0.1/32) <<< x127.0.0.1x
+echo x127.0.0.1x | grep -Po $(echo 127.0.0.1/32 | dist/build/hath/hath -b)
 >>>
 x127.0.0.1x
 >>>= 0
index 5cd4f67f1c074935e1cccdd57a6de91731718d1f..599e751f95ca85c2e25c16d38f8a7c080e4e1e82 100644 (file)
@@ -1,5 +1,5 @@
 # Test the regexed example from the man page.
-dist/build/hath/hath diffed <<< "10.0.0.0/24 10.0.1.0/24"
+echo "10.0.0.0/24 10.0.1.0/24" | dist/build/hath/hath diffed
 >>>
 -10.0.0.0/24
 -10.0.1.0/24
index f2c8bde105abf1e3e75a7c5301b85a1f1410d8c4..3e0c13fc7dc5c8da31aa4d3ed0d5ca75e3937022 100644 (file)
@@ -1,5 +1,5 @@
 # Test the regexed example from the man page.
-dist/build/hath/hath duped <<< "10.0.0.0/24 10.0.1.0/24"
+echo "10.0.0.0/24 10.0.1.0/24" | dist/build/hath/hath duped
 >>>
 10.0.0.0/24
 10.0.1.0/24
index e9909bf6f181da7e5593128ea22c622fa070555f..292d79a8c3cc255e4c732e2d2ce0faf2087f54b9 100644 (file)
@@ -1,5 +1,5 @@
 # Test the regexed example from the man page.
-dist/build/hath/hath listed <<< "192.168.0.240/29"
+echo 192.168.0.240/29 | dist/build/hath/hath listed
 >>>
 192.168.0.240
 192.168.0.241
index 10a2f0c218d0f4f2e7cb60dcb35c6ad444b9e282..296c61301cc2ad7dd80f50e8b3fd998e1c4abc9b 100644 (file)
@@ -1,5 +1,5 @@
 # Test the reduced example from the man page.
-dist/build/hath/hath reduced <<< "10.0.0.0/24 10.0.1.0/24"
+echo "10.0.0.0/24 10.0.1.0/24" | dist/build/hath/hath reduced
 >>>
 10.0.0.0/23
 >>>= 0
index 4961eac38487724d7f43deaa6ca3c07ea54a5da9..351e5c6d78ac06c7e38b1a2d730e5759301877d4 100644 (file)
@@ -1,5 +1,5 @@
 # Test the regexed example from the man page.
-dist/build/hath/hath <<< "10.0.0.0/29 10.0.0.8/29"
+echo "10.0.0.0/29 10.0.0.8/29" | dist/build/hath/hath
 >>>
 ((10)\.(0)\.(0)\.(15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0))
 >>>= 0
index 0e0bef85bbd7dd76ca5edb563c2e6146793c491d..b08fb63cf215ea1ae0a62b95abdd828b382ad2b4 100644 (file)
@@ -1,6 +1,6 @@
 # We should match every address in this class C.
 # (input/output generated with `hath listed`)
-grep -Po --color=never $(dist/build/hath/hath <<< "192.168.0.0/24")
+grep -Po $(echo 192.168.0.0/24 | dist/build/hath/hath)
 <<<
 192.168.0.0
 192.168.0.1