Blame view

node_modules/posix-getopt/tests/test-getopt.js 1.83 KB
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
  /*
   * Tests getopt() itself.
   */
  var mod_getopt = require('..');
  var mod_assert = require('assert');
  
  var test_cases = [ {
  	optstr: '',
  	argv: [],
  	result: []
  }, {
  	optstr: ':',
  	argv: [],
  	result: []
  }, {
  	optstr: ':l',
  	argv: [],
  	result: []
  }, {
  	optstr: ':l:',
  	argv: [],
  	result: []
  }, {
  	optstr: ':las',
  	argv: [],
  	result: []
  }, {
  	optstr: ':l:a:s:',
  	argv: [],
  	result: []
  }, {
  	optstr: ':l(long)',
  	argv: [],
  	result: []
  }, {
  	optstr: ':l:(long)',
  	argv: ['cmd', 'script', '-l', 'arg1', '--long=q', 'b', '--long', 'foo'],
  	result: [
  	    { option: 'l', optarg: 'arg1' },
  	    { option: 'l', optarg: 'q' }
  	]
  }, {
  	optstr: 'l:(long)(longer)',
  	argv: [],
  	result: []
  }, {
  	optstr: ':la:r(recurse)(recur)f:(file)(filename)q',
  	argv: [],
  	result: []
  }, {
  	optstr: '\u1000(help)\u1001(version)',
  	argv: ['cmd', 'script', '--help' ],
  	result: [
  	   { option: '\u1000' },
  	]
  }, {
  	optstr: '\u1000(help)\u1001(version)',
  	argv: ['cmd', 'script', '--version' ],
  	result: [
  	   { option: '\u1001' },
  	]
  }, {
  	optstr: '\u1000:(parallel)',
  	argv: ['cmd', 'script', '--parallel=100' ],
  	result: [
  	   { option: '\u1000', optarg: 100 },
  	]
  }, {
  	optstr: 'h',
  	argv: ['-h'],
  	result: [
  	   { option: 'h' },
  	],
          optind: 0
  }, {
  	optstr: 'hv',
  	argv: ['foo', '-h', '-v' ],
  	result: [
  	   { option: 'h' },
  	   { option: 'v' },
  	],
          optind: 1
  }];
  
  var parser, ii, arg, result;
  for (ii = 0; ii < test_cases.length; ii++) {
  	console.log('test case %s: "%s" with argv = "%s"', ii + 1,
  	    test_cases[ii].optstr, test_cases[ii].argv);
  	parser = new mod_getopt.BasicParser(test_cases[ii].optstr,
  	    test_cases[ii].argv, test_cases[ii].optind);
  	console.log(parser.gop_tokens);
  
  	result = [];
  	while ((arg = parser.getopt()) !== undefined)
  		result.push(arg);
  
  	mod_assert.deepEqual(test_cases[ii].result, result);
  }
  
  console.log('%s test cases passed', test_cases.length);