aboutsummaryrefslogtreecommitdiff
path: root/tests/test_core.py
diff options
context:
space:
mode:
authorVasilis Kalintiris <ehostunreach@gmail.com>2013-12-07 14:37:08 +0200
committerVasilis Kalintiris <ehostunreach@gmail.com>2013-12-07 19:35:58 +0200
commitf2c2daa40a6398a7d86aad5bed9d6af667d96f21 (patch)
treef46b6071a12071027a938c775730dd9954f72842 /tests/test_core.py
parent01824569b33d713039bf6c5c0bfa9554dab5c5bf (diff)
Use do_run_from_file() for test_getopt_long
Diffstat (limited to 'tests/test_core.py')
-rw-r--r--tests/test_core.py87
1 files changed, 4 insertions, 83 deletions
diff --git a/tests/test_core.py b/tests/test_core.py
index a55f51a5..ddffddb1 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -2550,89 +2550,10 @@ The current type of b is: 9
def test_getopt_long(self):
if self.emcc_args is None: return self.skip('needs emcc for libc')
- src = '''
- #pragma clang diagnostic ignored "-Winvalid-pp-token"
- #pragma clang diagnostic ignored "-Wdeprecated-writable-strings"
- #include <stdio.h> /* for printf */
- #include <stdlib.h> /* for exit */
- #include <getopt.h>
-
- int
- main(int argc, char **argv)
- {
- int c;
- int digit_optind = 0;
-
- while (1) {
- int this_option_optind = optind ? optind : 1;
- int option_index = 0;
- static struct option long_options[] = {
- {"add", required_argument, 0, 0 },
- {"append", no_argument, 0, 0 },
- {"delete", required_argument, 0, 0 },
- {"verbose", no_argument, 0, 0 },
- {"create", required_argument, 0, 'c'},
- {"file", required_argument, 0, 0 },
- {0, 0, 0, 0 }
- };
-
- c = getopt_long(argc, argv, "abc:d:012",
- long_options, &option_index);
- if (c == -1)
- break;
-
- switch (c) {
- case 0:
- printf("option %s", long_options[option_index].name);
- if (optarg)
- printf(" with arg %s", optarg);
- printf("\\n");
- break;
-
- case '0':
- case '1':
- case '2':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf("digits occur in two different argv-elements.\\n");
- digit_optind = this_option_optind;
- printf("option %c\\n", c);
- break;
-
- case 'a':
- printf("option a\\n");
- break;
-
- case 'b':
- printf("option b\\n");
- break;
-
- case 'c':
- printf("option c with value '%s'\\n", optarg);
- break;
-
- case 'd':
- printf("option d with value '%s'\\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf("?? getopt returned character code 0%o ??\\n", c);
- }
- }
-
- if (optind < argc) {
- printf("non-option ARGV-elements: ");
- while (optind < argc)
- printf("%s ", argv[optind++]);
- printf("\\n");
- }
-
- exit(EXIT_SUCCESS);
- }
- '''
- self.do_run(src, 'option file with arg foobar\noption b', args=['--file', 'foobar', '-b'])
+ test_path = path_from_root('tests', 'core', 'test_getopt_long')
+ src, output = (test_path + s for s in ('.in', '.out'))
+
+ self.do_run_from_file(src, output, args=['--file', 'foobar', '-b'])
def test_memmove(self):
src = '''