88
99from __future__ import print_function
1010
11- import argparse
1211import os
1312import sys
1413import unittest
@@ -116,7 +115,7 @@ def __new__(cls, name, bases, attrs):
116115 def generate_default_value_test (cls , dest , default_value ):
117116 def test (self ):
118117 with self .assertNotRaises (ParserError ):
119- parsed_values = self .parse_default_args ([])
118+ parsed_values = self .parse_args ([])
120119
121120 parsed_value = getattr (parsed_values , dest )
122121 if default_value .__class__ is str :
@@ -345,7 +344,7 @@ def generate_option_test(cls, option):
345344 def generate_preset_test (cls , preset_name , preset_args ):
346345 def test (self ):
347346 try :
348- self .parse_default_args (preset_args , check_impl_args = True )
347+ self .parse_args (preset_args , check_impl_args = True )
349348 except ParserError as e :
350349 self .fail ('failed to parse preset "{}": {}' .format (
351350 preset_name , e ))
@@ -363,13 +362,6 @@ def _quiet_output(self):
363362 with redirect_stderr (devnull ), redirect_stdout (devnull ):
364363 yield
365364
366- def _parse_args (self , args ):
367- try :
368- return migration .parse_args (self .parser , args )
369- except (SystemExit , ValueError ) as e :
370- raise ParserError ('failed to parse arguments: ' +
371- str (args ), e )
372-
373365 def _check_impl_args (self , namespace ):
374366 assert hasattr (namespace , 'build_script_impl_args' )
375367
@@ -380,26 +372,16 @@ def _check_impl_args(self, namespace):
380372 raise ParserError ('failed to parse impl arguments: ' +
381373 str (namespace .build_script_impl_args ), e )
382374
383- def parse_args (self , args , namespace = None ):
384- if namespace is None :
385- namespace = argparse .Namespace ()
386-
375+ def parse_args (self , args , check_impl_args = False ):
387376 with self ._quiet_output ():
388377 try :
389- namespace , unknown_args = \
390- super (self .parser .__class__ , self .parser )\
391- .parse_known_args (args , namespace )
392- except (SystemExit , argparse .ArgumentError ) as e :
393- raise ParserError ('failed to parse arguments: ' + str (args ), e )
394-
395- if unknown_args :
396- raise ParserError ('unknown arguments: ' + str (unknown_args ))
397-
398- return namespace
399-
400- def parse_default_args (self , args , check_impl_args = False ):
401- with self ._quiet_output ():
402- namespace = self ._parse_args (args )
378+ if check_impl_args :
379+ namespace = migration .parse_args (self .parser , args )
380+ else :
381+ namespace = self .parser .parse_args (args )
382+ except (SystemExit , ValueError ) as e :
383+ raise ParserError ('failed to parse arguments: ' +
384+ str (args ), e )
403385
404386 if check_impl_args :
405387 self ._check_impl_args (namespace )
@@ -470,74 +452,74 @@ def test_option_clang_compiler_version(self):
470452 option_string = '--clang-compiler-version'
471453
472454 with self .assertNotRaises (ParserError ):
473- self .parse_default_args ([option_string , '5.0.0' ])
474- self .parse_default_args ([option_string , '5.0.1' ])
475- self .parse_default_args ([option_string , '5.0.0.1' ])
455+ self .parse_args ([option_string , '5.0.0' ])
456+ self .parse_args ([option_string , '5.0.1' ])
457+ self .parse_args ([option_string , '5.0.0.1' ])
476458
477459 with self .assertRaises (ParserError ):
478- self .parse_default_args ([option_string , '1' ])
479- self .parse_default_args ([option_string , '1.2' ])
480- self .parse_default_args ([option_string , '0.0.0.0.1' ])
460+ self .parse_args ([option_string , '1' ])
461+ self .parse_args ([option_string , '1.2' ])
462+ self .parse_args ([option_string , '0.0.0.0.1' ])
481463
482464 def test_option_clang_user_visible_version (self ):
483465 option_string = '--clang-user-visible-version'
484466
485467 with self .assertNotRaises (ParserError ):
486- self .parse_default_args ([option_string , '5.0.0' ])
487- self .parse_default_args ([option_string , '5.0.1' ])
488- self .parse_default_args ([option_string , '5.0.0.1' ])
468+ self .parse_args ([option_string , '5.0.0' ])
469+ self .parse_args ([option_string , '5.0.1' ])
470+ self .parse_args ([option_string , '5.0.0.1' ])
489471
490472 with self .assertRaises (ParserError ):
491- self .parse_default_args ([option_string , '1' ])
492- self .parse_default_args ([option_string , '1.2' ])
493- self .parse_default_args ([option_string , '0.0.0.0.1' ])
473+ self .parse_args ([option_string , '1' ])
474+ self .parse_args ([option_string , '1.2' ])
475+ self .parse_args ([option_string , '0.0.0.0.1' ])
494476
495477 def test_option_swift_compiler_version (self ):
496478 option_string = '--swift-compiler-version'
497479
498480 with self .assertNotRaises (ParserError ):
499- self .parse_default_args ([option_string , '4.1' ])
500- self .parse_default_args ([option_string , '4.0.1' ])
501- self .parse_default_args ([option_string , '200.99.1' ])
481+ self .parse_args ([option_string , '4.1' ])
482+ self .parse_args ([option_string , '4.0.1' ])
483+ self .parse_args ([option_string , '200.99.1' ])
502484
503485 with self .assertRaises (ParserError ):
504- self .parse_default_args ([option_string , '1' ])
505- self .parse_default_args ([option_string , '0.0.0.1' ])
486+ self .parse_args ([option_string , '1' ])
487+ self .parse_args ([option_string , '0.0.0.1' ])
506488
507489 def test_option_swift_user_visible_version (self ):
508490 option_string = '--swift-user-visible-version'
509491
510492 with self .assertNotRaises (ParserError ):
511- self .parse_default_args ([option_string , '4.1' ])
512- self .parse_default_args ([option_string , '4.0.1' ])
513- self .parse_default_args ([option_string , '200.99.1' ])
493+ self .parse_args ([option_string , '4.1' ])
494+ self .parse_args ([option_string , '4.0.1' ])
495+ self .parse_args ([option_string , '200.99.1' ])
514496
515497 with self .assertRaises (ParserError ):
516- self .parse_default_args ([option_string , '1' ])
517- self .parse_default_args ([option_string , '0.0.0.1' ])
498+ self .parse_args ([option_string , '1' ])
499+ self .parse_args ([option_string , '0.0.0.1' ])
518500
519501 def test_option_I (self ):
520- with self .assertRaises (ValueError ):
521- self .parse_default_args (['-I' ])
502+ with self .assertRaises (ParserError ):
503+ self .parse_args (['-I' ])
522504
523505 def test_option_ios_all (self ):
524- with self .assertRaises (ValueError ):
525- self .parse_default_args (['--ios-all' ])
506+ with self .assertRaises (ParserError ):
507+ self .parse_args (['--ios-all' ])
526508
527509 def test_option_tvos_all (self ):
528- with self .assertRaises (ValueError ):
529- self .parse_default_args (['--tvos-all' ])
510+ with self .assertRaises (ParserError ):
511+ self .parse_args (['--tvos-all' ])
530512
531513 def test_option_watchos_all (self ):
532- with self .assertRaises (ValueError ):
533- self .parse_default_args (['--watchos-all' ])
514+ with self .assertRaises (ParserError ):
515+ self .parse_args (['--watchos-all' ])
534516
535517 # -------------------------------------------------------------------------
536518 # Implied defaults tests
537519
538520 def test_implied_defaults_assertions (self ):
539521 with self .assertNotRaises (ParserError ):
540- namespace = self .parse_default_args (['--assertions' ])
522+ namespace = self .parse_args (['--assertions' ])
541523
542524 self .assertTrue (namespace .cmark_assertions )
543525 self .assertTrue (namespace .llvm_assertions )
@@ -546,21 +528,21 @@ def test_implied_defaults_assertions(self):
546528
547529 def test_implied_defaults_cmark_build_variant (self ):
548530 with self .assertNotRaises (ParserError ):
549- namespace = self .parse_default_args (['--debug-cmark' ])
531+ namespace = self .parse_args (['--debug-cmark' ])
550532 self .assertTrue (namespace .build_cmark )
551533
552534 def test_implied_defaults_lldb_build_variant (self ):
553535 with self .assertNotRaises (ParserError ):
554- namespace = self .parse_default_args (['--debug-lldb' ])
536+ namespace = self .parse_args (['--debug-lldb' ])
555537 self .assertTrue (namespace .build_lldb )
556538
557539 with self .assertNotRaises (ParserError ):
558- namespace = self .parse_default_args (['--lldb-assertions' ])
540+ namespace = self .parse_args (['--lldb-assertions' ])
559541 self .assertTrue (namespace .build_lldb )
560542
561543 def test_implied_defaults_build_variant (self ):
562544 with self .assertNotRaises (ParserError ):
563- namespace = self .parse_default_args (['--debug' ])
545+ namespace = self .parse_args (['--debug' ])
564546
565547 self .assertEquals (namespace .cmark_build_variant , 'Debug' )
566548 self .assertEquals (namespace .foundation_build_variant , 'Debug' )
@@ -573,7 +555,7 @@ def test_implied_defaults_build_variant(self):
573555
574556 def test_implied_defaults_skip_build (self ):
575557 with self .assertNotRaises (ParserError ):
576- namespace = self .parse_default_args (['--skip-build' ])
558+ namespace = self .parse_args (['--skip-build' ])
577559
578560 self .assertFalse (namespace .build_benchmarks )
579561
@@ -598,7 +580,7 @@ def test_implied_defaults_skip_build(self):
598580
599581 def test_implied_defaults_skip_build_ios (self ):
600582 with self .assertNotRaises (ParserError ):
601- namespace = self .parse_default_args (['--skip-build-ios' ])
583+ namespace = self .parse_args (['--skip-build-ios' ])
602584 self .assertFalse (namespace .build_ios_device )
603585 self .assertFalse (namespace .build_ios_simulator )
604586
@@ -608,7 +590,7 @@ def test_implied_defaults_skip_build_ios(self):
608590
609591 def test_implied_defaults_skip_build_tvos (self ):
610592 with self .assertNotRaises (ParserError ):
611- namespace = self .parse_default_args (['--skip-build-tvos' ])
593+ namespace = self .parse_args (['--skip-build-tvos' ])
612594 self .assertFalse (namespace .build_tvos_device )
613595 self .assertFalse (namespace .build_tvos_simulator )
614596
@@ -618,7 +600,7 @@ def test_implied_defaults_skip_build_tvos(self):
618600
619601 def test_implied_defaults_skip_build_watchos (self ):
620602 with self .assertNotRaises (ParserError ):
621- namespace = self .parse_default_args (['--skip-build-watchos' ])
603+ namespace = self .parse_args (['--skip-build-watchos' ])
622604 self .assertFalse (namespace .build_watchos_device )
623605 self .assertFalse (namespace .build_watchos_simulator )
624606
@@ -628,22 +610,22 @@ def test_implied_defaults_skip_build_watchos(self):
628610
629611 def test_implied_defaults_validation_test (self ):
630612 with self .assertNotRaises (ParserError ):
631- namespace = self .parse_default_args (['--validation-test' ])
613+ namespace = self .parse_args (['--validation-test' ])
632614 self .assertTrue (namespace .test )
633615
634616 def test_implied_defaults_test_optimized (self ):
635617 with self .assertNotRaises (ParserError ):
636- namespace = self .parse_default_args (['--test-optimized' ])
618+ namespace = self .parse_args (['--test-optimized' ])
637619 self .assertTrue (namespace .test )
638620
639621 def test_implied_defaults_test_optimize_for_size (self ):
640622 with self .assertNotRaises (ParserError ):
641- namespace = self .parse_default_args (['--test-optimize-for-size' ])
623+ namespace = self .parse_args (['--test-optimize-for-size' ])
642624 self .assertTrue (namespace .test )
643625
644626 def test_implied_defaults_skip_all_tests (self ):
645627 with self .assertNotRaises (ParserError ):
646- namespace = self .parse_default_args ([
628+ namespace = self .parse_args ([
647629 '--test' , '0' ,
648630 '--validation-test' , '0' ,
649631 '--long-test' , '0' ,
@@ -659,34 +641,34 @@ def test_implied_defaults_skip_all_tests(self):
659641
660642 def test_implied_defaults_skip_test_ios (self ):
661643 with self .assertNotRaises (ParserError ):
662- namespace = self .parse_default_args (['--skip-test-ios' ])
644+ namespace = self .parse_args (['--skip-test-ios' ])
663645 self .assertFalse (namespace .test_ios_host )
664646 self .assertFalse (namespace .test_ios_simulator )
665647
666648 def test_implied_defaults_skip_test_tvos (self ):
667649 with self .assertNotRaises (ParserError ):
668- namespace = self .parse_default_args (['--skip-test-tvos' ])
650+ namespace = self .parse_args (['--skip-test-tvos' ])
669651 self .assertFalse (namespace .test_tvos_host )
670652 self .assertFalse (namespace .test_tvos_simulator )
671653
672654 def test_implied_defaults_skip_test_watchos (self ):
673655 with self .assertNotRaises (ParserError ):
674- namespace = self .parse_default_args (['--skip-test-watchos' ])
656+ namespace = self .parse_args (['--skip-test-watchos' ])
675657 self .assertFalse (namespace .test_watchos_host )
676658 self .assertFalse (namespace .test_watchos_simulator )
677659
678660 def test_implied_defaults_skip_build_android (self ):
679661 with self .assertNotRaises (ParserError ):
680- namespace = self .parse_default_args (['--android' , '0' ])
662+ namespace = self .parse_args (['--android' , '0' ])
681663 self .assertFalse (namespace .test_android_host )
682664
683665 with self .assertNotRaises (ParserError ):
684- namespace = self .parse_default_args (['--skip-build-android' ])
666+ namespace = self .parse_args (['--skip-build-android' ])
685667 self .assertFalse (namespace .test_android_host )
686668
687669 def test_implied_defaults_host_test (self ):
688670 with self .assertNotRaises (ParserError ):
689- namespace = self .parse_default_args (['--host-test' , '0' ])
671+ namespace = self .parse_args (['--host-test' , '0' ])
690672 self .assertFalse (namespace .test_ios_host )
691673 self .assertFalse (namespace .test_tvos_host )
692674 self .assertFalse (namespace .test_watchos_host )
0 commit comments