132 lines
4.6 KiB
Diff
132 lines
4.6 KiB
Diff
|
From 68cc39dd64688829be2632d9cd24f7efa3da79bb Mon Sep 17 00:00:00 2001
|
||
|
From: Denis Ovsienko <denis@ovsienko.info>
|
||
|
Date: Thu, 13 Jul 2017 21:07:13 +0100
|
||
|
Subject: [PATCH] Fix a bug in test scripts (exposed in GH #613).
|
||
|
|
||
|
crypto.sh ran its tests as expected but only indicated a failure
|
||
|
upstream when the last test failed. Add necessary checks and modify
|
||
|
the other "complex" tests in a similar manner to make sure the same
|
||
|
bug does not creep into these scripts later. Fix some indentation
|
||
|
while at it.
|
||
|
---
|
||
|
tests/crypto.sh | 12 ++++++++++++
|
||
|
tests/isis-seg-fault-1-v.sh | 6 +++++-
|
||
|
tests/lmp-v.sh | 7 ++++++-
|
||
|
tests/nflog-e.sh | 7 ++++++-
|
||
|
4 files changed, 29 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/tests/crypto.sh b/tests/crypto.sh
|
||
|
index 3aa29caa..5e295957 100755
|
||
|
--- a/tests/crypto.sh
|
||
|
+++ b/tests/crypto.sh
|
||
|
@@ -1,12 +1,17 @@
|
||
|
#!/bin/sh
|
||
|
|
||
|
+exitcode=0
|
||
|
+
|
||
|
# Only attempt OpenSSL-specific tests when compiled with the library.
|
||
|
|
||
|
if grep '^#define HAVE_LIBCRYPTO 1$' ../config.h >/dev/null
|
||
|
then
|
||
|
./TESTonce esp1 02-sunrise-sunset-esp.pcap esp1.out '-E "0x12345678@192.1.2.45 3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
./TESTonce esp2 08-sunrise-sunset-esp2.pcap esp2.out '-E "0x12345678@192.1.2.45 3des-cbc-hmac96:0x43434545464649494a4a4c4c4f4f51515252545457575840,0xabcdabcd@192.0.1.1 3des-cbc-hmac96:0x434545464649494a4a4c4c4f4f5151525254545757584043"'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
./TESTonce esp3 02-sunrise-sunset-esp.pcap esp1.out '-E "3des-cbc-hmac96:0x4043434545464649494a4a4c4c4f4f515152525454575758"'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
# Reading the secret(s) from a file does not work with Capsicum.
|
||
|
if grep '^#define HAVE_CAPSICUM 1$' ../config.h >/dev/null
|
||
|
then
|
||
|
@@ -18,10 +23,15 @@ then
|
||
|
printf "$FORMAT" isakmp4
|
||
|
else
|
||
|
./TESTonce esp4 08-sunrise-sunset-esp2.pcap esp2.out '-E "file esp-secrets.txt"'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
./TESTonce esp5 08-sunrise-sunset-aes.pcap esp5.out '-E "file esp-secrets.txt"'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
./TESTonce espudp1 espudp1.pcap espudp1.out '-nnnn -E "file esp-secrets.txt"'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
./TESTonce ikev2pI2 ikev2pI2.pcap ikev2pI2.out '-E "file ikev2pI2-secrets.txt" -v -v -v -v'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
./TESTonce isakmp4 isakmp4500.pcap isakmp4.out '-E "file esp-secrets.txt"'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
fi
|
||
|
else
|
||
|
FORMAT=' %-35s: TEST SKIPPED (compiled w/o OpenSSL)\n'
|
||
|
@@ -34,3 +44,5 @@ else
|
||
|
printf "$FORMAT" ikev2pI2
|
||
|
printf "$FORMAT" isakmp4
|
||
|
fi
|
||
|
+
|
||
|
+exit $exitcode
|
||
|
diff --git a/tests/isis-seg-fault-1-v.sh b/tests/isis-seg-fault-1-v.sh
|
||
|
index fc7bddd4..57965e8e 100755
|
||
|
--- a/tests/isis-seg-fault-1-v.sh
|
||
|
+++ b/tests/isis-seg-fault-1-v.sh
|
||
|
@@ -4,6 +4,7 @@
|
||
|
# may produce a slightly different result if the compiler is not GCC.
|
||
|
# Test only with GCC (similar to GitHub issue #333).
|
||
|
|
||
|
+exitcode=0
|
||
|
test_name=isis-seg-fault-1-v
|
||
|
|
||
|
if [ ! -f ../Makefile ]
|
||
|
@@ -11,7 +12,10 @@ then
|
||
|
printf ' %-35s: TEST SKIPPED (no Makefile)\n' $test_name
|
||
|
elif grep '^CC = .*gcc' ../Makefile >/dev/null
|
||
|
then
|
||
|
- ./TESTonce $test_name isis-seg-fault-1.pcap isis-seg-fault-1-v.out '-v'
|
||
|
+ ./TESTonce $test_name isis-seg-fault-1.pcap isis-seg-fault-1-v.out '-v'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
else
|
||
|
printf ' %-35s: TEST SKIPPED (compiler is not GCC)\n' $test_name
|
||
|
fi
|
||
|
+
|
||
|
+exit $exitcode
|
||
|
diff --git a/tests/lmp-v.sh b/tests/lmp-v.sh
|
||
|
index d26760d0..2d018864 100755
|
||
|
--- a/tests/lmp-v.sh
|
||
|
+++ b/tests/lmp-v.sh
|
||
|
@@ -6,6 +6,8 @@
|
||
|
# GCC build and must reproduce correctly on any other GCC build regardless of
|
||
|
# the architecture.
|
||
|
|
||
|
+exitcode=0
|
||
|
+
|
||
|
# A Windows build may have no file named Makefile and also a version of grep
|
||
|
# that won't return an error when the file does not exist. Work around.
|
||
|
if [ ! -f ../Makefile ]
|
||
|
@@ -13,7 +15,10 @@ then
|
||
|
printf ' %-35s: TEST SKIPPED (no Makefile)\n' 'lmp-v'
|
||
|
elif grep '^CC = .*gcc' ../Makefile >/dev/null
|
||
|
then
|
||
|
- ./TESTonce lmp-v lmp.pcap lmp-v.out '-T lmp -v'
|
||
|
+ ./TESTonce lmp-v lmp.pcap lmp-v.out '-T lmp -v'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
else
|
||
|
printf ' %-35s: TEST SKIPPED (compiler is not GCC)\n' 'lmp-v'
|
||
|
fi
|
||
|
+
|
||
|
+exit $exitcode
|
||
|
diff --git a/tests/nflog-e.sh b/tests/nflog-e.sh
|
||
|
index a8a67f00..5b002bf1 100755
|
||
|
--- a/tests/nflog-e.sh
|
||
|
+++ b/tests/nflog-e.sh
|
||
|
@@ -1,10 +1,15 @@
|
||
|
#!/bin/sh
|
||
|
|
||
|
+exitcode=0
|
||
|
+
|
||
|
# NFLOG support depends on both DLT_NFLOG and working <pcap/nflog.h>
|
||
|
|
||
|
if grep '^#define HAVE_PCAP_NFLOG_H 1$' ../config.h >/dev/null
|
||
|
then
|
||
|
- ./TESTonce nflog-e nflog.pcap nflog-e.out '-e'
|
||
|
+ ./TESTonce nflog-e nflog.pcap nflog-e.out '-e'
|
||
|
+ [ $? -eq 0 ] || exitcode=1
|
||
|
else
|
||
|
printf ' %-35s: TEST SKIPPED (compiled w/o NFLOG)\n' 'nflog-e'
|
||
|
fi
|
||
|
+
|
||
|
+exit $exitcode
|