You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
3.6 KiB

  1. -module(rebar_release_SUITE).
  2. -compile(export_all).
  3. -include_lib("common_test/include/ct.hrl").
  4. -include_lib("eunit/include/eunit.hrl").
  5. all() -> [release,
  6. dev_mode_release,
  7. profile_dev_mode_override_release,
  8. tar].
  9. init_per_testcase(Case, Config0) ->
  10. Config = rebar_test_utils:init_rebar_state(Config0),
  11. Name = rebar_test_utils:create_random_name(atom_to_list(Case)),
  12. AppDir = ?config(apps, Config),
  13. application:load(rebar),
  14. ok = ec_file:mkdir_p(AppDir),
  15. State = rebar_state:new([{base_dir, filename:join([AppDir, "_build"])}]),
  16. rebar_test_utils:create_app(AppDir, Name, "1.0.0", [kernel, stdlib]),
  17. [{name, Name}, {apps, AppDir}, {state, State} | Config].
  18. end_per_testcase(_, Config) ->
  19. meck:unload(),
  20. Config.
  21. release(Config) ->
  22. AppDir = ?config(apps, Config),
  23. Name = ?config(name, Config),
  24. Vsn = "1.0.0",
  25. {ok, RebarConfig} =
  26. file:consult(rebar_test_utils:create_config(AppDir,
  27. [{relx, [{release, {list_to_atom(Name), Vsn},
  28. [list_to_atom(Name)]},
  29. {lib_dirs, [AppDir]}]}])),
  30. rebar_test_utils:run_and_check(
  31. Config, RebarConfig,
  32. ["release"],
  33. {ok, [{release, list_to_atom(Name), Vsn, false}]}
  34. ).
  35. dev_mode_release(Config) ->
  36. AppDir = ?config(apps, Config),
  37. Name = ?config(name, Config),
  38. Vsn = "1.0.0",
  39. {ok, RebarConfig} =
  40. file:consult(rebar_test_utils:create_config(AppDir,
  41. [{relx, [{release, {list_to_atom(Name), Vsn},
  42. [list_to_atom(Name)]},
  43. {lib_dirs, [AppDir]},
  44. {dev_mode, true}]}])),
  45. rebar_test_utils:run_and_check(
  46. Config, RebarConfig,
  47. ["release"],
  48. {ok, [{release, list_to_atom(Name), Vsn, true}]}
  49. ).
  50. profile_dev_mode_override_release(Config) ->
  51. AppDir = ?config(apps, Config),
  52. Name = ?config(name, Config),
  53. Vsn = "1.0.0",
  54. {ok, RebarConfig} =
  55. file:consult(rebar_test_utils:create_config(AppDir,
  56. [{relx, [{release, {list_to_atom(Name), Vsn},
  57. [list_to_atom(Name)]},
  58. {lib_dirs, [AppDir]},
  59. {dev_mode, true}]},
  60. {profiles,
  61. [{ct,
  62. [{relx, [{dev_mode, false}]}]}]}])),
  63. rebar_test_utils:run_and_check(
  64. Config, RebarConfig,
  65. ["as", "ct", "release"],
  66. {ok, [{release, list_to_atom(Name), Vsn, false}]}
  67. ).
  68. tar(Config) ->
  69. AppDir = ?config(apps, Config),
  70. Name = ?config(name, Config),
  71. Vsn = "1.0.0",
  72. {ok, RebarConfig} =
  73. file:consult(rebar_test_utils:create_config(AppDir,
  74. [{relx, [{release, {list_to_atom(Name), Vsn},
  75. [list_to_atom(Name)]},
  76. {lib_dirs, [AppDir]}]}])),
  77. rebar_test_utils:run_and_check(
  78. Config, RebarConfig,
  79. ["tar"],
  80. {ok, [{release, list_to_atom(Name), Vsn, false}, {tar, Name, Vsn}]}
  81. ).