trycmd.nix 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # SPDX-FileCopyrightText: 2024 Christina Sørensen
  2. # SPDX-License-Identifier: EUPL-1.2
  3. {
  4. pkgs,
  5. naersk',
  6. buildInputs,
  7. ...
  8. }:
  9. {
  10. trycmd = naersk'.buildPackage {
  11. src = ../.;
  12. mode = "test";
  13. doCheck = true;
  14. # No reason to wait for release build
  15. release = false;
  16. # buildPhase files differ between dep and main phase
  17. singleStep = true;
  18. # generate testing files
  19. buildPhase = ''
  20. bash devtools/dir-generator.sh tests/test_dir && echo "Dir generated"
  21. bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir
  22. '';
  23. cargoTestOptions =
  24. opts:
  25. opts
  26. ++ [
  27. "--features nix"
  28. "--features nix-local"
  29. "--features powertest"
  30. ];
  31. inherit buildInputs;
  32. nativeBuildInputs = with pkgs; [ git ];
  33. };
  34. # TODO: add conditionally to checks.
  35. # Run `nix build .#trycmd` to run integration tests
  36. trycmd-local = naersk'.buildPackage {
  37. src = ../.;
  38. mode = "test";
  39. doCheck = true;
  40. # No reason to wait for release build
  41. release = false;
  42. # buildPhase files differ between dep and main phase
  43. singleStep = true;
  44. # set itests files creation date to unix epoch
  45. buildPhase = ''
  46. bash devtools/dir-generator.sh tests/test_dir
  47. bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir
  48. touch --date=@0 tests/itest/*
  49. touch --date=@0 tests/ptests/*;
  50. fd -e stdout -e stderr -H -t file -X sed -i 's/[CWD]\//\/build\/source\//g'
  51. '';
  52. cargoTestOptions =
  53. opts:
  54. opts
  55. ++ [
  56. "--features nix"
  57. "--features nix-local"
  58. "--features powertest"
  59. ];
  60. inherit buildInputs;
  61. nativeBuildInputs = with pkgs; [ git ];
  62. };
  63. # Run `nix build .#trydump` to dump testing files
  64. trydump = naersk'.buildPackage {
  65. src = ../.;
  66. mode = "test";
  67. doCheck = true;
  68. # No reason to wait for release build
  69. release = false;
  70. # buildPhase files differ between dep and main phase
  71. singleStep = true;
  72. # set itests files creation date to unix epoch
  73. buildPhase = ''
  74. bash devtools/dir-generator.sh tests/test_dir
  75. bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir
  76. touch --date=@0 tests/itest/*;
  77. rm tests/cmd/*.stdout || echo;
  78. rm tests/cmd/*.stderr || echo;
  79. touch --date=@0 tests/ptests/*;
  80. rm tests/ptests/*.stdout || echo;
  81. rm tests/ptests/*.stderr || echo;
  82. '';
  83. cargoTestOptions =
  84. opts:
  85. opts
  86. ++ [
  87. "--features nix"
  88. "--features nix-local"
  89. "--features powertest"
  90. #"-F trycmd/debug"
  91. ];
  92. TRYCMD = "dump";
  93. postInstall = ''
  94. fd -e stdout -e stderr -H -t file -X sed -i 's/\/build\/source\//[CWD]\//g'
  95. cp dump $out -r
  96. '';
  97. inherit buildInputs;
  98. nativeBuildInputs = with pkgs; [
  99. fd
  100. gnused
  101. git
  102. ];
  103. };
  104. }