Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

111 строки
4.5 KiB

10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
  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. extend_release].
  10. init_per_testcase(Case, Config0) ->
  11. Config = rebar_test_utils:init_rebar_state(Config0),
  12. Name = rebar_test_utils:create_random_name(atom_to_list(Case)),
  13. AppDir = ?config(apps, Config),
  14. application:load(rebar),
  15. ok = ec_file:mkdir_p(AppDir),
  16. State = rebar_state:new([{base_dir, filename:join([AppDir, "_build"])}]),
  17. rebar_test_utils:create_app(AppDir, Name, "1.0.0", [kernel, stdlib]),
  18. [{name, Name}, {apps, AppDir}, {state, State} | Config].
  19. end_per_testcase(_, Config) ->
  20. meck:unload(),
  21. Config.
  22. release(Config) ->
  23. AppDir = ?config(apps, Config),
  24. Name = ?config(name, Config),
  25. Vsn = "1.0.0",
  26. {ok, RebarConfig} =
  27. file:consult(rebar_test_utils:create_config(AppDir,
  28. [{relx, [{release, {list_to_atom(Name), Vsn},
  29. [list_to_atom(Name)]},
  30. {lib_dirs, [AppDir]}]}])),
  31. rebar_test_utils:run_and_check(
  32. Config, RebarConfig,
  33. ["release"],
  34. {ok, [{release, list_to_atom(Name), Vsn, false}]}
  35. ).
  36. dev_mode_release(Config) ->
  37. AppDir = ?config(apps, Config),
  38. Name = ?config(name, Config),
  39. Vsn = "1.0.0",
  40. {ok, RebarConfig} =
  41. file:consult(rebar_test_utils:create_config(AppDir,
  42. [{relx, [{release, {list_to_atom(Name), Vsn},
  43. [list_to_atom(Name)]},
  44. {lib_dirs, [AppDir]},
  45. {dev_mode, true}]}])),
  46. rebar_test_utils:run_and_check(
  47. Config, RebarConfig,
  48. ["release"],
  49. {ok, [{release, list_to_atom(Name), Vsn, true}]}
  50. ).
  51. profile_dev_mode_override_release(Config) ->
  52. AppDir = ?config(apps, Config),
  53. Name = ?config(name, Config),
  54. Vsn = "1.0.0",
  55. {ok, RebarConfig} =
  56. file:consult(rebar_test_utils:create_config(AppDir,
  57. [{relx, [{release, {list_to_atom(Name), Vsn},
  58. [list_to_atom(Name)]},
  59. {lib_dirs, [AppDir]},
  60. {dev_mode, true}]},
  61. {profiles,
  62. [{ct,
  63. [{relx, [{dev_mode, false}]}]}]}])),
  64. rebar_test_utils:run_and_check(
  65. Config, RebarConfig,
  66. ["as", "ct", "release"],
  67. {ok, [{release, list_to_atom(Name), Vsn, false}]}
  68. ).
  69. tar(Config) ->
  70. AppDir = ?config(apps, Config),
  71. Name = ?config(name, Config),
  72. Vsn = "1.0.0",
  73. {ok, RebarConfig} =
  74. file:consult(rebar_test_utils:create_config(AppDir,
  75. [{relx, [{release, {list_to_atom(Name), Vsn},
  76. [list_to_atom(Name)]},
  77. {lib_dirs, [AppDir]}]}])),
  78. rebar_test_utils:run_and_check(
  79. Config, RebarConfig,
  80. ["tar"],
  81. {ok, [{release, list_to_atom(Name), Vsn, false}, {tar, Name, Vsn}]}
  82. ).
  83. %% Test that the order of release config args is not lost. If it is extend would fail.
  84. extend_release(Config) ->
  85. AppDir = ?config(apps, Config),
  86. Name = ?config(name, Config),
  87. Vsn = "1.0.0",
  88. {ok, RebarConfig} =
  89. file:consult(rebar_test_utils:create_config(AppDir,
  90. [{relx, [{release, {list_to_atom(Name), Vsn},
  91. [list_to_atom(Name)]},
  92. {release, {extended, Vsn, {extend, list_to_atom(Name)}},
  93. []},
  94. {lib_dirs, [AppDir]}]}])),
  95. rebar_test_utils:run_and_check(
  96. Config, RebarConfig,
  97. ["release", "-n", "extended"],
  98. {ok, [{release, extended, Vsn, false}]}
  99. ).