8
8
9
9
from __future__ import print_function
10
10
11
- import argparse
12
11
import os
13
12
import sys
14
13
import unittest
@@ -116,7 +115,7 @@ def __new__(cls, name, bases, attrs):
116
115
def generate_default_value_test (cls , dest , default_value ):
117
116
def test (self ):
118
117
with self .assertNotRaises (ParserError ):
119
- parsed_values = self .parse_default_args ([])
118
+ parsed_values = self .parse_args ([])
120
119
121
120
parsed_value = getattr (parsed_values , dest )
122
121
if default_value .__class__ is str :
@@ -345,7 +344,7 @@ def generate_option_test(cls, option):
345
344
def generate_preset_test (cls , preset_name , preset_args ):
346
345
def test (self ):
347
346
try :
348
- self .parse_default_args (preset_args , check_impl_args = True )
347
+ self .parse_args (preset_args , check_impl_args = True )
349
348
except ParserError as e :
350
349
self .fail ('failed to parse preset "{}": {}' .format (
351
350
preset_name , e ))
@@ -363,13 +362,6 @@ def _quiet_output(self):
363
362
with redirect_stderr (devnull ), redirect_stdout (devnull ):
364
363
yield
365
364
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
-
373
365
def _check_impl_args (self , namespace ):
374
366
assert hasattr (namespace , 'build_script_impl_args' )
375
367
@@ -380,26 +372,16 @@ def _check_impl_args(self, namespace):
380
372
raise ParserError ('failed to parse impl arguments: ' +
381
373
str (namespace .build_script_impl_args ), e )
382
374
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 ):
387
376
with self ._quiet_output ():
388
377
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 )
403
385
404
386
if check_impl_args :
405
387
self ._check_impl_args (namespace )
@@ -470,74 +452,74 @@ def test_option_clang_compiler_version(self):
470
452
option_string = '--clang-compiler-version'
471
453
472
454
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' ])
476
458
477
459
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' ])
481
463
482
464
def test_option_clang_user_visible_version (self ):
483
465
option_string = '--clang-user-visible-version'
484
466
485
467
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' ])
489
471
490
472
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' ])
494
476
495
477
def test_option_swift_compiler_version (self ):
496
478
option_string = '--swift-compiler-version'
497
479
498
480
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' ])
502
484
503
485
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' ])
506
488
507
489
def test_option_swift_user_visible_version (self ):
508
490
option_string = '--swift-user-visible-version'
509
491
510
492
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' ])
514
496
515
497
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' ])
518
500
519
501
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' ])
522
504
523
505
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' ])
526
508
527
509
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' ])
530
512
531
513
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' ])
534
516
535
517
# -------------------------------------------------------------------------
536
518
# Implied defaults tests
537
519
538
520
def test_implied_defaults_assertions (self ):
539
521
with self .assertNotRaises (ParserError ):
540
- namespace = self .parse_default_args (['--assertions' ])
522
+ namespace = self .parse_args (['--assertions' ])
541
523
542
524
self .assertTrue (namespace .cmark_assertions )
543
525
self .assertTrue (namespace .llvm_assertions )
@@ -546,21 +528,21 @@ def test_implied_defaults_assertions(self):
546
528
547
529
def test_implied_defaults_cmark_build_variant (self ):
548
530
with self .assertNotRaises (ParserError ):
549
- namespace = self .parse_default_args (['--debug-cmark' ])
531
+ namespace = self .parse_args (['--debug-cmark' ])
550
532
self .assertTrue (namespace .build_cmark )
551
533
552
534
def test_implied_defaults_lldb_build_variant (self ):
553
535
with self .assertNotRaises (ParserError ):
554
- namespace = self .parse_default_args (['--debug-lldb' ])
536
+ namespace = self .parse_args (['--debug-lldb' ])
555
537
self .assertTrue (namespace .build_lldb )
556
538
557
539
with self .assertNotRaises (ParserError ):
558
- namespace = self .parse_default_args (['--lldb-assertions' ])
540
+ namespace = self .parse_args (['--lldb-assertions' ])
559
541
self .assertTrue (namespace .build_lldb )
560
542
561
543
def test_implied_defaults_build_variant (self ):
562
544
with self .assertNotRaises (ParserError ):
563
- namespace = self .parse_default_args (['--debug' ])
545
+ namespace = self .parse_args (['--debug' ])
564
546
565
547
self .assertEquals (namespace .cmark_build_variant , 'Debug' )
566
548
self .assertEquals (namespace .foundation_build_variant , 'Debug' )
@@ -573,7 +555,7 @@ def test_implied_defaults_build_variant(self):
573
555
574
556
def test_implied_defaults_skip_build (self ):
575
557
with self .assertNotRaises (ParserError ):
576
- namespace = self .parse_default_args (['--skip-build' ])
558
+ namespace = self .parse_args (['--skip-build' ])
577
559
578
560
self .assertFalse (namespace .build_benchmarks )
579
561
@@ -598,7 +580,7 @@ def test_implied_defaults_skip_build(self):
598
580
599
581
def test_implied_defaults_skip_build_ios (self ):
600
582
with self .assertNotRaises (ParserError ):
601
- namespace = self .parse_default_args (['--skip-build-ios' ])
583
+ namespace = self .parse_args (['--skip-build-ios' ])
602
584
self .assertFalse (namespace .build_ios_device )
603
585
self .assertFalse (namespace .build_ios_simulator )
604
586
@@ -608,7 +590,7 @@ def test_implied_defaults_skip_build_ios(self):
608
590
609
591
def test_implied_defaults_skip_build_tvos (self ):
610
592
with self .assertNotRaises (ParserError ):
611
- namespace = self .parse_default_args (['--skip-build-tvos' ])
593
+ namespace = self .parse_args (['--skip-build-tvos' ])
612
594
self .assertFalse (namespace .build_tvos_device )
613
595
self .assertFalse (namespace .build_tvos_simulator )
614
596
@@ -618,7 +600,7 @@ def test_implied_defaults_skip_build_tvos(self):
618
600
619
601
def test_implied_defaults_skip_build_watchos (self ):
620
602
with self .assertNotRaises (ParserError ):
621
- namespace = self .parse_default_args (['--skip-build-watchos' ])
603
+ namespace = self .parse_args (['--skip-build-watchos' ])
622
604
self .assertFalse (namespace .build_watchos_device )
623
605
self .assertFalse (namespace .build_watchos_simulator )
624
606
@@ -628,22 +610,22 @@ def test_implied_defaults_skip_build_watchos(self):
628
610
629
611
def test_implied_defaults_validation_test (self ):
630
612
with self .assertNotRaises (ParserError ):
631
- namespace = self .parse_default_args (['--validation-test' ])
613
+ namespace = self .parse_args (['--validation-test' ])
632
614
self .assertTrue (namespace .test )
633
615
634
616
def test_implied_defaults_test_optimized (self ):
635
617
with self .assertNotRaises (ParserError ):
636
- namespace = self .parse_default_args (['--test-optimized' ])
618
+ namespace = self .parse_args (['--test-optimized' ])
637
619
self .assertTrue (namespace .test )
638
620
639
621
def test_implied_defaults_test_optimize_for_size (self ):
640
622
with self .assertNotRaises (ParserError ):
641
- namespace = self .parse_default_args (['--test-optimize-for-size' ])
623
+ namespace = self .parse_args (['--test-optimize-for-size' ])
642
624
self .assertTrue (namespace .test )
643
625
644
626
def test_implied_defaults_skip_all_tests (self ):
645
627
with self .assertNotRaises (ParserError ):
646
- namespace = self .parse_default_args ([
628
+ namespace = self .parse_args ([
647
629
'--test' , '0' ,
648
630
'--validation-test' , '0' ,
649
631
'--long-test' , '0' ,
@@ -659,34 +641,34 @@ def test_implied_defaults_skip_all_tests(self):
659
641
660
642
def test_implied_defaults_skip_test_ios (self ):
661
643
with self .assertNotRaises (ParserError ):
662
- namespace = self .parse_default_args (['--skip-test-ios' ])
644
+ namespace = self .parse_args (['--skip-test-ios' ])
663
645
self .assertFalse (namespace .test_ios_host )
664
646
self .assertFalse (namespace .test_ios_simulator )
665
647
666
648
def test_implied_defaults_skip_test_tvos (self ):
667
649
with self .assertNotRaises (ParserError ):
668
- namespace = self .parse_default_args (['--skip-test-tvos' ])
650
+ namespace = self .parse_args (['--skip-test-tvos' ])
669
651
self .assertFalse (namespace .test_tvos_host )
670
652
self .assertFalse (namespace .test_tvos_simulator )
671
653
672
654
def test_implied_defaults_skip_test_watchos (self ):
673
655
with self .assertNotRaises (ParserError ):
674
- namespace = self .parse_default_args (['--skip-test-watchos' ])
656
+ namespace = self .parse_args (['--skip-test-watchos' ])
675
657
self .assertFalse (namespace .test_watchos_host )
676
658
self .assertFalse (namespace .test_watchos_simulator )
677
659
678
660
def test_implied_defaults_skip_build_android (self ):
679
661
with self .assertNotRaises (ParserError ):
680
- namespace = self .parse_default_args (['--android' , '0' ])
662
+ namespace = self .parse_args (['--android' , '0' ])
681
663
self .assertFalse (namespace .test_android_host )
682
664
683
665
with self .assertNotRaises (ParserError ):
684
- namespace = self .parse_default_args (['--skip-build-android' ])
666
+ namespace = self .parse_args (['--skip-build-android' ])
685
667
self .assertFalse (namespace .test_android_host )
686
668
687
669
def test_implied_defaults_host_test (self ):
688
670
with self .assertNotRaises (ParserError ):
689
- namespace = self .parse_default_args (['--host-test' , '0' ])
671
+ namespace = self .parse_args (['--host-test' , '0' ])
690
672
self .assertFalse (namespace .test_ios_host )
691
673
self .assertFalse (namespace .test_tvos_host )
692
674
self .assertFalse (namespace .test_watchos_host )
0 commit comments