PageRenderTime 58ms CodeModel.GetById 36ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/mix/test/mix/tasks/compile.yecc_test.exs

https://github.com/vanstee/elixir
Elixir | 58 lines | 46 code | 12 blank | 0 comment | 6 complexity | 56e1b784d7af21e5e48388e4ee9675e5 MD5 | raw file
Possible License(s): Apache-2.0
  1. Code.require_file "../../test_helper.exs", __DIR__
  2. defmodule Mix.Tasks.Compile.YeccTest do
  3. use MixTest.Case
  4. import ExUnit.CaptureIO
  5. setup do
  6. Mix.Project.push MixTest.Case.Sample
  7. :ok
  8. end
  9. teardown do
  10. Mix.Project.pop
  11. :ok
  12. end
  13. test "compilation continues if one file fails to compile" do
  14. in_fixture "compile_yecc", fn ->
  15. File.write!("src/zzz.yrl", """)
  16. oops.
  17. """
  18. assert_raise CompileError, fn ->
  19. capture_io fn ->
  20. Mix.Tasks.Compile.Yecc.run ["--force"]
  21. end
  22. end
  23. assert File.regular?("src/test_ok.erl")
  24. end
  25. end
  26. test "compiles src/test_ok.yrl" do
  27. in_fixture "compile_yecc", fn ->
  28. assert Mix.Tasks.Compile.Yecc.run([]) == :ok
  29. assert_received { :mix_shell, :info, ["Compiled src/test_ok.yrl"] }
  30. assert File.regular?("src/test_ok.erl")
  31. assert Mix.Tasks.Compile.Yecc.run([]) == :noop
  32. refute_received { :mix_shell, :info, ["Compiled src/test_ok.yrl"] }
  33. assert Mix.Tasks.Compile.Yecc.run(["--force"]) == :ok
  34. assert_received { :mix_shell, :info, ["Compiled src/test_ok.yrl"] }
  35. end
  36. end
  37. test "removes old artifact files" do
  38. in_fixture "compile_yecc", fn ->
  39. assert Mix.Tasks.Compile.Yecc.run([]) == :ok
  40. assert File.regular?("src/test_ok.erl")
  41. File.rm!("src/test_ok.yrl")
  42. assert Mix.Tasks.Compile.Yecc.run([]) == :ok
  43. refute File.regular?("src/test_ok.erl")
  44. end
  45. end
  46. end