Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

73 lignes
2.2 KiB

  1. -module(rebar_hooks_SUITE).
  2. -export([suite/0,
  3. init_per_suite/1,
  4. end_per_suite/1,
  5. init_per_testcase/2,
  6. all/0,
  7. build_and_clean_app/1,
  8. run_hooks_once/1,
  9. deps_hook_namespace/1]).
  10. -include_lib("common_test/include/ct.hrl").
  11. -include_lib("eunit/include/eunit.hrl").
  12. -include_lib("kernel/include/file.hrl").
  13. suite() ->
  14. [].
  15. init_per_suite(Config) ->
  16. Config.
  17. end_per_suite(_Config) ->
  18. meck:unload().
  19. init_per_testcase(_, Config) ->
  20. rebar_test_utils:init_rebar_state(Config).
  21. all() ->
  22. [build_and_clean_app, run_hooks_once,
  23. deps_hook_namespace].
  24. %% Test post provider hook cleans compiled project app, leaving it invalid
  25. build_and_clean_app(Config) ->
  26. AppDir = ?config(apps, Config),
  27. Name = rebar_test_utils:create_random_name("app1_"),
  28. Vsn = rebar_test_utils:create_random_vsn(),
  29. rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
  30. rebar_test_utils:run_and_check(Config, [], ["compile"], {ok, [{app, Name, valid}]}),
  31. rebar_test_utils:run_and_check(Config, [{provider_hooks, [{post, [{compile, clean}]}]}],
  32. ["compile"], {ok, [{app, Name, invalid}]}).
  33. run_hooks_once(Config) ->
  34. AppDir = ?config(apps, Config),
  35. Name = rebar_test_utils:create_random_name("app1_"),
  36. Vsn = rebar_test_utils:create_random_vsn(),
  37. RebarConfig = [{pre_hooks, [{compile, "mkdir blah"}]}],
  38. rebar_test_utils:create_config(AppDir, RebarConfig),
  39. rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
  40. rebar_test_utils:run_and_check(Config, RebarConfig, ["compile"], {ok, [{app, Name, valid}]}).
  41. deps_hook_namespace(Config) ->
  42. mock_git_resource:mock([{deps, [{some_dep, "0.0.1"}]}]),
  43. Deps = rebar_test_utils:expand_deps(git, [{"some_dep", "0.0.1", []}]),
  44. TopDeps = rebar_test_utils:top_level_deps(Deps),
  45. RebarConfig = [
  46. {deps, TopDeps},
  47. {overrides, [
  48. {override, some_dep, [
  49. {provider_hooks, [
  50. {pre, [
  51. {compile, clean}
  52. ]}
  53. ]}
  54. ]}
  55. ]}
  56. ],
  57. rebar_test_utils:run_and_check(
  58. Config, RebarConfig, ["compile"],
  59. {ok, [{dep, "some_dep"}]}
  60. ).