@ -38,7 +38,9 @@
clean_all / 1 ,
override_deps / 1 ,
profile_override_deps / 1 ,
deps_build_in_prod / 1 ] ) .
deps_build_in_prod / 1 ,
include_file_relative_to_working_directory / 1 ,
include_file_in_src / 1 ] ) .
- include_lib ( " common_test/include/ct.hrl " ) .
- include_lib ( " eunit/include/eunit.hrl " ) .
@ -59,7 +61,8 @@ all() ->
deps_in_path , checkout_priority , highest_version_of_pkg_dep ,
parse_transform_test , erl_first_files_test , mib_test ,
umbrella_mib_first_test , only_default_transitive_deps ,
clean_all , override_deps , profile_override_deps , deps_build_in_prod ] .
clean_all , override_deps , profile_override_deps , deps_build_in_prod ,
include_file_relative_to_working_directory , include_file_in_src ] .
groups ( ) - >
[ { basic_app , [ ] , [ build_basic_app , paths_basic_app , clean_basic_app ] } ,
@ -1203,3 +1206,62 @@ deps_build_in_prod(Config) ->
{ ok , [ { app , Name } , { dep , " asdf " , < < " 1.0.0 " > > } , { dep , PkgName } ,
{ file , filename : join ( [ AppDir , " _build " , " default " , " lib " , " asdf " , " randomfile " ] ) } ] }
) .
% % verify that the proper include path is defined
% % according the erlang doc which states :
% % If the filename File is absolute ( possibly after variable substitution ) ,
% % the include file with that name is included . Otherwise , the specified file
% % is searched for in the following directories , and in this order :
% % * The current working directory
% % * The directory where the module is being compiled
% % * The directories given by the include option
include_file_relative_to_working_directory ( Config ) - >
AppDir = ? config ( apps , Config ) ,
Name = rebar_test_utils : create_random_name ( " app1_ " ) ,
Vsn = rebar_test_utils : create_random_vsn ( ) ,
rebar_test_utils : create_app ( AppDir , Name , Vsn , [ kernel , stdlib ] ) ,
Src = < < " -module(test). \n "
" \n "
" -include( \" include/test.hrl \" ). \n "
" \n "
" test() -> ?TEST_MACRO. \n "
" \n " > > ,
Include = < < " -define(TEST_MACRO, test). \n " > > ,
ok = filelib : ensure_dir ( filename : join ( [ AppDir , " src " , " dummy " ] ) ) ,
ok = file : write_file ( filename : join ( [ AppDir , " src " , " test.erl " ] ) , Src ) ,
ok = filelib : ensure_dir ( filename : join ( [ AppDir , " include " , " dummy " ] ) ) ,
ok = file : write_file ( filename : join ( [ AppDir , " include " , " test.hrl " ] ) , Include ) ,
RebarConfig = [ ] ,
rebar_test_utils : run_and_check ( Config , RebarConfig ,
[ " compile " ] ,
{ ok , [ { app , Name } ] } ) .
include_file_in_src ( Config ) - >
AppDir = ? config ( apps , Config ) ,
Name = rebar_test_utils : create_random_name ( " app1_ " ) ,
Vsn = rebar_test_utils : create_random_vsn ( ) ,
rebar_test_utils : create_app ( AppDir , Name , Vsn , [ kernel , stdlib ] ) ,
Src = < < " -module(test). \n "
" \n "
" -include( \" test.hrl \" ). \n "
" \n "
" test() -> ?TEST_MACRO. \n "
" \n " > > ,
Include = < < " -define(TEST_MACRO, test). \n " > > ,
ok = filelib : ensure_dir ( filename : join ( [ AppDir , " src " , " dummy " ] ) ) ,
ok = file : write_file ( filename : join ( [ AppDir , " src " , " test.erl " ] ) , Src ) ,
ok = file : write_file ( filename : join ( [ AppDir , " src " , " test.hrl " ] ) , Include ) ,
RebarConfig = [ ] ,
rebar_test_utils : run_and_check ( Config , RebarConfig ,
[ " compile " ] ,
{ ok , [ { app , Name } ] } ) .