From 2727dc1e09909fc54e877739e27366ee1fc2e120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 19 Nov 2014 20:02:46 +0100 Subject: [PATCH] Add script to test depends on individual curves --- tests/scripts/curves.pl | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 tests/scripts/curves.pl diff --git a/tests/scripts/curves.pl b/tests/scripts/curves.pl new file mode 100755 index 000000000..1f489a387 --- /dev/null +++ b/tests/scripts/curves.pl @@ -0,0 +1,45 @@ +#!/usr/bin/perl + +# test dependencies on individual curves in tests +# - build +# - run test suite +# +# Usage: tests/scripts/curves.pl + +use warnings; +use strict; + +-d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; + +my $sed_cmd = 's/^#define \(POLARSSL_ECP_DP.*_ENABLED\)/\1/p'; +my $config_h = 'include/polarssl/config.h'; +my @curves = split( /\s+/, `sed -n -e '$sed_cmd' $config_h` ); + +my $test = system( "grep -i cmake Makefile >/dev/null" ) ? 'check' : 'test'; + +system( "cp $config_h $config_h.bak" ) and die; +sub abort { + system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n"; + die $_[0]; +} + +for my $curve (@curves) { + system( "cp $config_h.bak $config_h" ) and die "$config_h not restored\n"; + system( "make clean" ) and die; + + print "\n******************************************\n"; + print "* Testing without curve: $curve\n"; + print "******************************************\n"; + + system( "scripts/config.pl unset $curve" ) + and abort "Failed to disable $curve\n"; + + system( "make polarssl" ) and abort "Failed to build lib: $curve\n"; + system( "cd tests && make" ) and abort "Failed to build tests: $curve\n"; + system( "make $test" ) and abort "Failed test suite: $curve\n"; + +} + +system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; +system( "make clean" ) and die; +exit 0;