cli.rs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // SPDX-License-Identifier: Apache-2.0
  2. use assert_cmd::Command;
  3. use std::fs::File;
  4. use tempfile::TempDir;
  5. #[test]
  6. fn create_output_dir() {
  7. let mut cmd = Command::cargo_bin("solang").unwrap();
  8. let tmp = TempDir::new_in("tests").unwrap();
  9. let test1 = tmp.path().join("test1");
  10. cmd.args([
  11. "compile",
  12. "examples/flipper.sol",
  13. "--target",
  14. "solana",
  15. "--output",
  16. ])
  17. .arg(test1.clone())
  18. .assert()
  19. .success();
  20. File::open(test1.join("flipper.json")).expect("should exist");
  21. File::open(test1.join("flipper.so")).expect("should exist");
  22. let mut cmd = Command::cargo_bin("solang").unwrap();
  23. let test2 = tmp.path().join("test2");
  24. let test2_meta = tmp.path().join("test2_meta");
  25. cmd.args([
  26. "compile",
  27. "examples/flipper.sol",
  28. "--target",
  29. "solana",
  30. "--contract",
  31. "flipper",
  32. "--output",
  33. ])
  34. .arg(test2.clone())
  35. .arg("--output-meta")
  36. .arg(test2_meta.clone())
  37. .assert()
  38. .success();
  39. File::open(test2.join("flipper.so")).expect("should exist");
  40. File::open(test2_meta.join("flipper.json")).expect("should exist");
  41. let mut cmd = Command::cargo_bin("solang").unwrap();
  42. cmd.args([
  43. "compile",
  44. "examples/flipper.sol",
  45. "--target",
  46. "solana",
  47. "--output",
  48. "examples/flipper.sol",
  49. ])
  50. .assert()
  51. .failure();
  52. let mut cmd = Command::cargo_bin("solang").unwrap();
  53. let test3 = tmp.path().join("test3");
  54. cmd.args([
  55. "compile",
  56. "examples/flipper.sol",
  57. "--target",
  58. "solana",
  59. "--contract",
  60. "flapper,flipper", // not just flipper
  61. "--output",
  62. ])
  63. .arg(test3.clone())
  64. .assert()
  65. .failure();
  66. // nothing should have been created because flapper does not exist
  67. assert!(!test3.exists());
  68. }