tests.rs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. use rootfs::CreateCommandParam;
  2. use user::UserCleanLevel;
  3. use super::*;
  4. #[test]
  5. fn test_command_line_args_default() {
  6. let args = CommandLineArgs::parse_from(["dadk", "kernel"]);
  7. assert_eq!(args.action, Action::Kernel);
  8. assert_eq!(args.manifest_path, "dadk-manifest.toml");
  9. }
  10. #[test]
  11. fn test_command_line_args_with_manifest() {
  12. // test short
  13. let args = CommandLineArgs::parse_from(["dadk", "-f", "custom-manifest.toml", "kernel"]);
  14. assert_eq!(args.action, Action::Kernel);
  15. assert_eq!(args.manifest_path, "custom-manifest.toml");
  16. // test long
  17. let args =
  18. CommandLineArgs::parse_from(["dadk", "--manifest", "custom-manifest.toml", "kernel"]);
  19. assert_eq!(args.action, Action::Kernel);
  20. assert_eq!(args.manifest_path, "custom-manifest.toml");
  21. }
  22. #[test]
  23. fn test_command_line_args_rootfs_subcommand() {
  24. let args = CommandLineArgs::parse_from(["dadk", "rootfs", "create"]);
  25. assert!(matches!(
  26. args.action,
  27. Action::Rootfs(RootFSCommand::Create(CreateCommandParam {
  28. skip_if_exists: false
  29. }))
  30. ));
  31. let args = CommandLineArgs::parse_from(["dadk", "rootfs", "create", "--skip-if-exists"]);
  32. assert!(matches!(
  33. args.action,
  34. Action::Rootfs(RootFSCommand::Create(CreateCommandParam {
  35. skip_if_exists: true
  36. }))
  37. ));
  38. }
  39. #[test]
  40. fn test_show_mountpoint() {
  41. let args = CommandLineArgs::parse_from(["dadk", "rootfs", "show-mountpoint"]);
  42. assert!(matches!(
  43. args.action,
  44. Action::Rootfs(RootFSCommand::ShowMountPoint)
  45. ));
  46. }
  47. #[test]
  48. fn test_command_line_args_user() {
  49. let args = CommandLineArgs::parse_from(["dadk", "user", "build"]);
  50. assert!(matches!(args.action, Action::User(UserCommand::Build)));
  51. }
  52. /// 该函数测试CommandLineArgs解析器是否正确解析`dadk user clean`命令
  53. #[test]
  54. fn test_command_line_args_user_clean() {
  55. let args = CommandLineArgs::parse_from(["dadk", "user", "clean"]);
  56. assert!(matches!(args.action, Action::User(UserCommand::Clean(_))));
  57. if let Action::User(UserCommand::Clean(args)) = args.action {
  58. assert_eq!(args.level, UserCleanLevel::All);
  59. } else {
  60. panic!("Expected UserCommand::Clean");
  61. }
  62. // 检查 `--level` 参数
  63. let args = CommandLineArgs::parse_from(["dadk", "user", "clean", "--level", "in-src"]);
  64. if let Action::User(UserCommand::Clean(args)) = args.action {
  65. assert_eq!(args.level, UserCleanLevel::InSrc);
  66. } else {
  67. panic!("Expected UserCommand::Clean");
  68. }
  69. // 检查 `--task` 参数
  70. let args = CommandLineArgs::parse_from(["dadk", "user", "clean", "--task", "a-0.1.0"]);
  71. if let Action::User(UserCommand::Clean(args)) = args.action {
  72. assert_eq!(args.task, Some("a-0.1.0".to_string()));
  73. } else {
  74. panic!("Expected UserCommand::Clean");
  75. }
  76. }