trycmd.nix 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 = opts: opts ++ [ "--features nix" ];
  24. inherit buildInputs;
  25. nativeBuildInputs = with pkgs; [ git ];
  26. };
  27. # TODO: add conditionally to checks.
  28. # Run `nix build .#trycmd` to run integration tests
  29. trycmd-local = naersk'.buildPackage {
  30. src = ../.;
  31. mode = "test";
  32. doCheck = true;
  33. # No reason to wait for release build
  34. release = false;
  35. # buildPhase files differ between dep and main phase
  36. singleStep = true;
  37. # set itests files creation date to unix epoch
  38. buildPhase = ''
  39. bash devtools/dir-generator.sh tests/test_dir
  40. bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir
  41. touch --date=@0 tests/itest/*
  42. touch --date=@0 tests/ptests/*;
  43. fd -e stdout -e stderr -H -t file -X sed -i 's/[CWD]\//\/build\/source\//g'
  44. '';
  45. cargoTestOptions =
  46. opts:
  47. opts
  48. ++ [
  49. "--features nix"
  50. "--features nix-local"
  51. "--features powertest"
  52. ];
  53. inherit buildInputs;
  54. nativeBuildInputs = with pkgs; [ git ];
  55. };
  56. # Run `nix build .#trydump` to dump testing files
  57. trydump = naersk'.buildPackage {
  58. src = ../.;
  59. mode = "test";
  60. doCheck = true;
  61. # No reason to wait for release build
  62. release = false;
  63. # buildPhase files differ between dep and main phase
  64. singleStep = true;
  65. # set itests files creation date to unix epoch
  66. buildPhase = ''
  67. bash devtools/dir-generator.sh tests/test_dir
  68. bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir
  69. touch --date=@0 tests/itest/*;
  70. rm tests/cmd/*.stdout || echo;
  71. rm tests/cmd/*.stderr || echo;
  72. touch --date=@0 tests/ptests/*;
  73. rm tests/ptests/*.stdout || echo;
  74. rm tests/ptests/*.stderr || echo;
  75. '';
  76. cargoTestOptions =
  77. opts:
  78. opts
  79. ++ [
  80. "--features nix"
  81. "--features nix-local"
  82. "--features powertest"
  83. #"-F trycmd/debug"
  84. ];
  85. TRYCMD = "dump";
  86. postInstall = ''
  87. fd -e stdout -e stderr -H -t file -X sed -i 's/\/build\/source\//[CWD]\//g'
  88. cp dump $out -r
  89. '';
  90. inherit buildInputs;
  91. nativeBuildInputs = with pkgs; [
  92. fd
  93. gnused
  94. git
  95. ];
  96. };
  97. }