test_cmdline.c 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*-
  2. * SPDX-License-Identifier: BSD-2-Clause
  3. *
  4. * Copyright (c) 2003-2009 Tim Kientzle
  5. * All rights reserved.
  6. */
  7. #include "test.h"
  8. /*
  9. * Test the command-line parsing.
  10. */
  11. DEFINE_TEST(test_cmdline)
  12. {
  13. FILE *f;
  14. /* Create an empty file. */
  15. f = fopen("empty", "wb");
  16. assert(f != NULL);
  17. fclose(f);
  18. failure("-Q is an invalid option on every cpio program I know of");
  19. assert(0 != systemf("%s -i -Q <empty >1.out 2>1.err", testprog));
  20. assertEmptyFile("1.out");
  21. failure("-f requires an argument");
  22. assert(0 != systemf("%s -if <empty >2.out 2>2.err", testprog));
  23. assertEmptyFile("2.out");
  24. failure("-f requires an argument");
  25. assert(0 != systemf("%s -i -f <empty >3.out 2>3.err", testprog));
  26. assertEmptyFile("3.out");
  27. failure("--format requires an argument");
  28. assert(0 != systemf("%s -i --format <empty >4.out 2>4.err", testprog));
  29. assertEmptyFile("4.out");
  30. failure("--badopt is an invalid option");
  31. assert(0 != systemf("%s -i --badop <empty >5.out 2>5.err", testprog));
  32. assertEmptyFile("5.out");
  33. failure("--badopt is an invalid option");
  34. assert(0 != systemf("%s -i --badopt <empty >6.out 2>6.err", testprog));
  35. assertEmptyFile("6.out");
  36. failure("--n is ambiguous");
  37. assert(0 != systemf("%s -i --n <empty >7.out 2>7.err", testprog));
  38. assertEmptyFile("7.out");
  39. failure("--create forbids an argument");
  40. assert(0 != systemf("%s --create=arg <empty >8.out 2>8.err", testprog));
  41. assertEmptyFile("8.out");
  42. failure("-i with empty input should succeed");
  43. assert(0 == systemf("%s -i <empty >9.out 2>9.err", testprog));
  44. assertEmptyFile("9.out");
  45. failure("-o with empty input should succeed");
  46. assert(0 == systemf("%s -o <empty >10.out 2>10.err", testprog));
  47. failure("-i -p is nonsense");
  48. assert(0 != systemf("%s -i -p <empty >11.out 2>11.err", testprog));
  49. assertEmptyFile("11.out");
  50. failure("-p -i is nonsense");
  51. assert(0 != systemf("%s -p -i <empty >12.out 2>12.err", testprog));
  52. assertEmptyFile("12.out");
  53. failure("-i -o is nonsense");
  54. assert(0 != systemf("%s -i -o <empty >13.out 2>13.err", testprog));
  55. assertEmptyFile("13.out");
  56. failure("-o -i is nonsense");
  57. assert(0 != systemf("%s -o -i <empty >14.out 2>14.err", testprog));
  58. assertEmptyFile("14.out");
  59. failure("-o -p is nonsense");
  60. assert(0 != systemf("%s -o -p <empty >15.out 2>15.err", testprog));
  61. assertEmptyFile("15.out");
  62. failure("-p -o is nonsense");
  63. assert(0 != systemf("%s -p -o <empty >16.out 2>16.err", testprog));
  64. assertEmptyFile("16.out");
  65. failure("-p with empty input should fail");
  66. assert(0 != systemf("%s -p <empty >17.out 2>17.err", testprog));
  67. assertEmptyFile("17.out");
  68. }