mad_utils_SUITE.erl 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. -module(mad_utils_SUITE).
  2. -export([all/0]).
  3. -export([cwd/1]).
  4. -export([exec/1]).
  5. -export([home/1]).
  6. -export([consult/1]).
  7. -export([src/1]).
  8. -export([include/1]).
  9. -export([ebin/1]).
  10. -export([deps/1]).
  11. -export([get_value/1]).
  12. -export([script/1]).
  13. -export([lib_dirs/1]).
  14. -export([sub_dirs/1]).
  15. -export([https_to_git/1]).
  16. -export([git_to_https/1]).
  17. -export([last_modified/1]).
  18. -import(helper, [get_value/2]).
  19. all() ->
  20. [
  21. cwd, exec, home, consult, src, include, ebin, deps, get_value, script,
  22. lib_dirs, sub_dirs, https_to_git, git_to_https, last_modified
  23. ].
  24. cwd(_) ->
  25. Cwd = os:cmd("pwd") -- "\n",
  26. Cwd = mad_utils:cwd().
  27. exec(_) ->
  28. "xyz" = mad_utils:exec("echo", ["-n", "xyz"]).
  29. home(_) ->
  30. Home = os:cmd("echo $HOME") -- "\n",
  31. Home = mad_utils:home().
  32. consult(Config) ->
  33. File = filename:join(get_value(data_dir, Config), "rebar"),
  34. [] = mad_utils:consult(File),
  35. [{deps, [
  36. {mad, ".*", {git, "git://github.com/s1n4/mad.git",
  37. {branch, "master"}}}
  38. ]},
  39. {erl_opts, [d, 'X']}] = mad_utils:consult(File ++ ".config").
  40. src(_) ->
  41. "/path/to/app/src" = mad_utils:src("/path/to/app").
  42. include(_) ->
  43. "/path/to/app/include" = mad_utils:include("/path/to/app").
  44. ebin(_) ->
  45. "/path/to/app/ebin" = mad_utils:ebin("/path/to/app").
  46. deps(Config) ->
  47. File = filename:join(get_value(data_dir, Config), "rebar"),
  48. [] = mad_utils:deps(File),
  49. [{mad, ".*",
  50. {git, "git://github.com/s1n4/mad.git", {branch, "master"}
  51. }}] = mad_utils:deps(File ++ ".config").
  52. get_value(_) ->
  53. Opts = [{numbers, [0,1,2,"and so on"]}],
  54. patience_dude = mad_utils:get_value(gimme_wat_I_want, Opts, patience_dude),
  55. [0,1,2,"and so on"] = mad_utils:get_value(numbers, Opts, undefined).
  56. script(Config) ->
  57. [a, b, c] = mad_utils:script("rebar.config", [a, b, c]),
  58. File = filename:join(get_value(data_dir, Config), "rebar.config"),
  59. [{sub_dirs, ["sub_dir1", "sub_dir2"]},
  60. a, b, c] = mad_utils:script(File, [a, b, c]).
  61. sub_dirs(Config) ->
  62. ["/sub_dir0"] = mad_utils:sub_dirs("/", "rebar.config",
  63. [{sub_dirs, ["sub_dir0"]}]),
  64. DataDir = get_value(data_dir, Config),
  65. SD1 = filename:absname(filename:join(DataDir, "sub_dir1")),
  66. SD2 = filename:join(SD1, "trap"),
  67. SD3 = filename:absname(filename:join(DataDir, "sub_dir2")),
  68. SD4 = filename:join(SD3, "time-machine"),
  69. [
  70. SD1, SD2, SD3, SD4
  71. ] = mad_utils:sub_dirs(DataDir, "rebar.config",
  72. [{sub_dirs, ["sub_dir1", "sub_dir2"]}]).
  73. lib_dirs(Config) ->
  74. [] = mad_utils:lib_dirs("/", [{lib_dirs, ["lib_dir0"]}]),
  75. DataDir = get_value(data_dir, Config),
  76. LD1 = filename:absname(filename:join([DataDir, "lib_dir1", "app1", "ebin"])),
  77. LD2 = filename:absname(filename:join([DataDir, "lib_dir2", "app2", "ebin"])),
  78. [LD1, LD2] = mad_utils:lib_dirs(DataDir,
  79. [{lib_dirs, ["lib_dir1", "lib_dir2"]}]).
  80. https_to_git(_) ->
  81. Repo = "https://github.com/erlang/otp.git",
  82. "git://github.com/erlang/otp.git" = mad_utils:https_to_git(Repo).
  83. git_to_https(_) ->
  84. Repo = "git://github.com/s1n4/some_secret.git",
  85. "https://github.com/s1n4/some_secret.git" = mad_utils:git_to_https(Repo).
  86. last_modified(Config) ->
  87. 0 = mad_utils:last_modified("you_mad_bro"),
  88. DataDir = get_value(data_dir, Config),
  89. true = (mad_utils:last_modified(DataDir ++ "rebar.config") > 0).