Просмотр исходного кода

Add a test ensuring compilation errors are detected

Since all the legacy 'app' tests can be found in the new
format, the 'app' target has been removed.
Loïc Hoguin 9 лет назад
Родитель
Сommit
f7e3397596
1 измененных файлов с 19 добавлено и 20 удалено
  1. 19 20
      test/Makefile

+ 19 - 20
test/Makefile

@@ -55,7 +55,7 @@ endif
 
 .NOTPARALLEL:
 
-all: clean core bootstrap app ct eunit tests-cover docs pkgs
+all: clean core bootstrap ct eunit tests-cover docs pkgs
 	$i '+---------------------+'
 	$i '|  All tests passed.  |'
 	$i '+---------------------+'
@@ -77,7 +77,7 @@ clean-core: clean-core-app clean-core-upgrade
 
 # Core: Building applications.
 
-CORE_APP_CASES = asn1 generate-erl generate-erl-include generate-erl-prepend hrl hrl-recursive mib no-makedep xrl xrl-include yrl yrl-include
+CORE_APP_CASES = asn1 error generate-erl generate-erl-include generate-erl-prepend hrl hrl-recursive mib no-makedep xrl xrl-include yrl yrl-include
 CORE_APP_TARGETS = $(addprefix core-app-,$(CORE_APP_CASES))
 CORE_APP_CLEAN_TARGETS = $(addprefix clean-,$(CORE_APP_TARGETS))
 
@@ -198,6 +198,23 @@ core-app-asn1: build clean-core-app-asn1
 		[{module, M} = code:load_file(M) || M <- Mods], \
 		halt()"
 
+core-app-error: build clean-core-app-error
+
+	$i "Bootstrap a new OTP library named $(APP)"
+	$t mkdir $(APP)/
+	$t cp ../erlang.mk $(APP)/
+	$t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
+
+	$i "Generate a bad .erl files"
+	$t touch $(APP)/src/breaking.erl
+
+	$i "Generate unrelated .erl files"
+	$t echo "-module(boy)." > $(APP)/src/boy.erl
+	$t echo "-module(girl)." > $(APP)/src/girl.erl
+
+	$i "Check that trying to build returns non-zero"
+	$t if $(MAKE) -C $(APP) $v; then false; fi
+
 core-app-generate-erl: build clean-core-app-generate-erl
 
 	$i "Bootstrap a new OTP library named $(APP)"
@@ -1521,24 +1538,6 @@ $(BOOTSTRAP_CLEAN_TARGETS):
 ########################################
 # Legacy tests.
 
-app: app1
-	$i "app: Testing the 'app' target."
-	$t $(MAKE) -C app1 app $v
-	$i "Checking the modules line in the generated .app file."
-	$t [ `grep -E "{modules, *\['m'\]}" app1/ebin/app1.app | wc -l` -eq 1 ]
-	$t [ -e app1/ebin/m.beam ]
-	$i "Checking that '$(MAKE) clean-app' deletes ebin."
-	$t $(MAKE) -C app1 clean-app $v
-	$t [ ! -e app1/ebin ]
-	$i "Checking that '$(MAKE) app' returns non-zero on compile errors."
-	$t printf "%s\n" \
-		"-module(syntax_error)." \
-		"foo lorem_ipsum dolor sit amet." \
-	 > app1/src/syntax_error.erl
-	$t if $(MAKE) -C app1 app $v ; then false ; fi
-	$t rm app1/src/syntax_error.erl
-	$i "Test 'app' passed."
-
 ct: app1
 	$i "ct: Testing ct and related targets."
 	$i "Setting up test suite."