diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/core_deps.mk | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/test/core_deps.mk b/test/core_deps.mk index 14def21..c32eca6 100644 --- a/test/core_deps.mk +++ b/test/core_deps.mk @@ -479,6 +479,155 @@ core-deps-apps-only: build clean $i "Check that all relevant files were removed" $t test ! -e $(APP)/deps +core-deps-apps-local-deps: build clean + + $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 "Create a new application my_app_1" + $t $(MAKE) -C $(APP) new-app in=my_app_1 $v + + $i "Add Lager to the list of dependencies of my_app_1, and add the lager parse_transform" + $t perl -ni.bak -e 'print;if ($$.==1) {print "DEPS = lager\nERLC_OPTS+=+{parse_transform,lager_transform}\n"}' $(APP)/apps/my_app_1/Makefile + + $i "Add a lager:error/2 call to my_app_1_app.erl that will fail if the parse_transform doesn't run" + $t perl -ni.bak -e 'print;if (/^-export/){print "\n-export([log/0]).\n"} if (eof) {print "\nlog() -> lager:error(\"test\", []).\n"}' $(APP)/apps/my_app_1/src/my_app_1_app.erl + + $i "Create a new application my_app_2" + $t $(MAKE) -C $(APP) new-app in=my_app_2 $v + + $i "Add my_app_1 to the list of local dependencies of my_app_2, don't add lager, but add the lager parse_transform (this will fail unless my_app_1 was indeed built first)" + $t perl -ni.bak -e 'print;if ($$.==1) {print "LOCAL_DEPS = my_app_1\nERLC_OPTS+=+{parse_transform,lager_transform}\n"}' $(APP)/apps/my_app_2/Makefile + + $i "Add a lager:error/2 call to my_app_2_app.erl that will fail if the parse_transform doesn't run" + $t perl -ni.bak -e 'print;if (/^-export/){print "\n-export([log/0]).\n"} if (eof) {print "\nlog() -> lager:error(\"test\", []).\n"}' $(APP)/apps/my_app_2/src/my_app_2_app.erl + + $i "Build the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that all compiled files exist" + $t test -f $(APP)/$(APP).d + $t test -f $(APP)/ebin/$(APP).app + $t test -f $(APP)/apps/my_app_1/my_app_1.d + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1.app + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_app.beam + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_sup.beam + $t test -f $(APP)/apps/my_app_2/my_app_2.d + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2.app + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_app.beam + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_sup.beam + $t test -f $(APP)/deps/lager/ebin/lager.app + + $i "Distclean the application" + $t $(MAKE) -C $(APP) distclean $v + + $i "Test after swapping my_app_1 and my_app_2 to make sure lexical ordering didnt incidentally build the correct app first" + + $i "Add my_app_2 to the list of local dependencies of my_app_1, don't add lager, but add the lager parse_transform (this will fail unless my_app_2 was indeed built first)" + $t mv $(APP)/apps/my_app_1/Makefile{.bak,} + $t perl -ni.bak -e 'print;if ($$.==1) {print "LOCAL_DEPS = my_app_2\nERLC_OPTS+=+{parse_transform,lager_transform}\n"}' $(APP)/apps/my_app_1/Makefile + + $i "Add Lager to the list of dependencies of my_app_2, and add the lager parse_transform" + $t mv $(APP)/apps/my_app_2/Makefile{.bak,} + $t perl -ni.bak -e 'print;if ($$.==1) {print "DEPS = lager\nERLC_OPTS+=+{parse_transform,lager_transform}\n"}' $(APP)/apps/my_app_2/Makefile + + $i "Build the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that all compiled files exist" + $t test -f $(APP)/$(APP).d + $t test -f $(APP)/ebin/$(APP).app + $t test -f $(APP)/apps/my_app_1/my_app_1.d + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1.app + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_app.beam + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_sup.beam + $t test -f $(APP)/apps/my_app_2/my_app_2.d + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2.app + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_app.beam + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_sup.beam + $t test -f $(APP)/deps/lager/ebin/lager.app + +core-deps-apps-local-deps-circular: build clean + + $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 "Create a new application my_app_1" + $t $(MAKE) -C $(APP) new-app in=my_app_1 $v + + $i "Create a new application my_app_2" + $t $(MAKE) -C $(APP) new-app in=my_app_2 $v + + $i "Add my_app_1 to the list of local dependencies of my_app_2" + $t perl -ni.bak -e 'print;if ($$.==1) {print "LOCAL_DEPS = my_app_1\n"}' $(APP)/apps/my_app_2/Makefile + + $i "Add my_app_2 to the list of local dependencies of my_app_1" + $t perl -ni.bak -e 'print;if ($$.==1) {print "LOCAL_DEPS = my_app_2\n"}' $(APP)/apps/my_app_1/Makefile + + $i "Build the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that all compiled files exist" + $t test -f $(APP)/$(APP).d + $t test -f $(APP)/ebin/$(APP).app + $t test -f $(APP)/apps/my_app_1/my_app_1.d + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1.app + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_app.beam + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_sup.beam + $t test -f $(APP)/apps/my_app_2/my_app_2.d + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2.app + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_app.beam + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_sup.beam + +core-deps-apps-toplevel-local-deps: build clean + + $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 "Create a new application my_app_1" + $t $(MAKE) -C $(APP) new-app in=my_app_1 $v + + $i "Add my_app_1 to the list of toplevel local dependencies" + $t perl -ni.bak -e 'print;if ($$.==1) {print "LOCAL_DEPS = my_app_1\n"}' $(APP)/Makefile + + $i "Create a new application my_app_2" + $t $(MAKE) -C $(APP) new-app in=my_app_2 $v + + $i "Build the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that all compiled files exist" + $t test -f $(APP)/$(APP).d + $t test -f $(APP)/ebin/$(APP).app + $t test -f $(APP)/apps/my_app_1/my_app_1.d + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1.app + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_app.beam + $t test -f $(APP)/apps/my_app_1/ebin/my_app_1_sup.beam + + $i "Check that my_app_2 compiled files DO NOT exist" + $t test ! -e $(APP)/apps/my_app_2/my_app_2.d + $t test ! -e $(APP)/apps/my_app_2/ebin/my_app_2.app + $t test ! -e $(APP)/apps/my_app_2/ebin/my_app_2_app.beam + $t test ! -e $(APP)/apps/my_app_2/ebin/my_app_2_sup.beam + + $i "Add my_app_2 to the list of local dependencies of my_app_1" + $t perl -ni.bak -e 'print;if ($$.==1) {print "LOCAL_DEPS = my_app_2\n"}' $(APP)/apps/my_app_1/Makefile + + $i "Rebuild the application" + $t $(MAKE) -C $(APP) $v + + $i "Check that my_app_2 compiled files exist" + $t test -f $(APP)/apps/my_app_2/my_app_2.d + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2.app + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_app.beam + $t test -f $(APP)/apps/my_app_2/ebin/my_app_2_sup.beam + core-deps-autopatch-rebar: build clean $i "Bootstrap a new OTP library named $(APP)" |