From 968ab98f0cfc5890ec8c2d4cfff364263e0ac326 Mon Sep 17 00:00:00 2001 From: Kenneth Heafield Date: Tue, 11 Sep 2012 10:43:28 +0100 Subject: [PATCH] Make --with-regtest work without an argument, fix path handling --- jam-files/sanity.jam | 7 +++++++ regression-testing/Jamfile | 39 +++++++++++++++++++++++--------------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/jam-files/sanity.jam b/jam-files/sanity.jam index 8ccfc65d3..7d62bfd40 100644 --- a/jam-files/sanity.jam +++ b/jam-files/sanity.jam @@ -15,6 +15,13 @@ rule _shell ( cmd : extras * ) { return [ trim-nl [ SHELL $(cmd) : $(extras) ] ] ; } +rule shell_or_fail ( cmd ) { + local ret = [ SHELL $(cmd) : exit-status ] ; + if $(ret[2]) != 0 { + exit $(cmd) failed : 1 ; + } +} + cxxflags = [ os.environ "CXXFLAGS" ] ; cflags = [ os.environ "CFLAGS" ] ; ldflags = [ os.environ "LDFLAGS" ] ; diff --git a/regression-testing/Jamfile b/regression-testing/Jamfile index a7bd69506..d16aedf48 100644 --- a/regression-testing/Jamfile +++ b/regression-testing/Jamfile @@ -1,9 +1,18 @@ -import option ; +import option path ; with-regtest = [ option.get "with-regtest" ] ; + if $(with-regtest) { - path-constant TESTS : $(with-regtest)/tests ; - + with-regtest = [ path.root $(with-regtest) [ path.pwd ] ] ; +} else if [ option.get "with-regtest" : : "yes" ] { + shell_or_fail "git submodule init" ; + shell_or_fail "git submodule update" ; + with-regtest = $(TOP)/regression-testing/tests ; +} + +if $(with-regtest) { + test-dir = $(with-regtest)/tests ; + rule reg_test ( name : tests * : program : action ) { alias $(name) : $(tests:D=).passed ; for test in $(tests) { @@ -11,34 +20,34 @@ if $(with-regtest) { alias $(test) : $(test:D=).passed ; } } - + actions reg_test_decode { - $(TOP)/regression-testing/run-single-test.perl --decoder=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(TESTS) && touch $(<) + $(TOP)/regression-testing/run-single-test.perl --decoder=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(test-dir) && touch $(<) } - reg_test phrase : [ glob $(TESTS)/phrase.* ] : ../moses-cmd/src//moses : @reg_test_decode ; - reg_test chart : [ glob $(TESTS)/chart.* : $(TESTS)/chart.hierarchical-withkenlm ] : ../moses-chart-cmd/src//moses_chart : @reg_test_decode ; + reg_test phrase : [ glob $(test-dir)/phrase.* ] : ../moses-cmd/src//moses : @reg_test_decode ; + reg_test chart : [ glob $(test-dir)/chart.* ] : ../moses-chart-cmd/src//moses_chart : @reg_test_decode ; actions reg_test_score { - $(TOP)/regression-testing/run-test-scorer.perl --scorer=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(TESTS) && touch $(<) + $(TOP)/regression-testing/run-test-scorer.perl --scorer=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(test-dir) && touch $(<) } - reg_test score : [ glob $(TESTS)/score.* ] : ../phrase-extract//score : @reg_test_score ; + reg_test score : [ glob $(test-dir)/score.* ] : ../phrase-extract//score : @reg_test_score ; actions reg_test_extract { - $(TOP)/regression-testing/run-test-extract.perl --extractor=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(TESTS) && touch $(<) + $(TOP)/regression-testing/run-test-extract.perl --extractor=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(test-dir) && touch $(<) } - reg_test extract : [ glob $(TESTS)/extract.* ] : ../phrase-extract//extract : @reg_test_extract ; + reg_test extract : [ glob $(test-dir)/extract.* ] : ../phrase-extract//extract : @reg_test_extract ; actions reg_test_extractrules { - $(TOP)/regression-testing/run-test-extract.perl --extractor=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(TESTS) && touch $(<) + $(TOP)/regression-testing/run-test-extract.perl --extractor=$(>) --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(test-dir) && touch $(<) } - reg_test extractrules : [ glob $(TESTS)/extract-rules.* : $(TESTS)/extract-rules.hierarchical ] : ../phrase-extract//extract-rules : @reg_test_extractrules ; + reg_test extractrules : [ glob $(test-dir)/extract-rules.* : $(with-regtest)/extract-rules.hierarchical ] : ../phrase-extract//extract-rules : @reg_test_extractrules ; actions reg_test_mert { - $(TOP)/regression-testing/run-test-mert.perl --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(TESTS) && touch $(<) + $(TOP)/regression-testing/run-test-mert.perl --test=$(<:B) --data-dir=$(with-regtest) --test-dir=$(test-dir) && touch $(<) } - reg_test mert : [ glob $(TESTS)/mert.* ] : ../mert//mert : @reg_test_mert ; + reg_test mert : [ glob $(test-dir)/mert.* ] : ../mert//mert : @reg_test_mert ; alias all : phrase chart mert score extract extractrules ; }