Blame view
node_modules/posix-getopt/tests/test-getopt.js
1.83 KB
f7563de62
|
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); |