Show More
@@ -53,6 +53,7 b' import errno' | |||
|
53 | 53 | import json |
|
54 | 54 | import multiprocessing |
|
55 | 55 | import os |
|
56 | import platform | |
|
56 | 57 | import random |
|
57 | 58 | import re |
|
58 | 59 | import shutil |
@@ -555,6 +556,16 b' def getparser():' | |||
|
555 | 556 | help="use pure Python code instead of C extensions", |
|
556 | 557 | ) |
|
557 | 558 | hgconf.add_argument( |
|
559 | "--rust", | |
|
560 | action="store_true", | |
|
561 | help="use Rust code alongside C extensions", | |
|
562 | ) | |
|
563 | hgconf.add_argument( | |
|
564 | "--no-rust", | |
|
565 | action="store_true", | |
|
566 | help="do not use Rust code even if compiled", | |
|
567 | ) | |
|
568 | hgconf.add_argument( | |
|
558 | 569 | "--with-chg", |
|
559 | 570 | metavar="CHG", |
|
560 | 571 | help="use specified chg wrapper in place of hg", |
@@ -637,6 +648,15 b' def parseargs(args, parser):' | |||
|
637 | 648 | if 'java' in sys.platform or '__pypy__' in sys.modules: |
|
638 | 649 | options.pure = True |
|
639 | 650 | |
|
651 | if platform.python_implementation() != 'CPython' and options.rust: | |
|
652 | parser.error('Rust extensions are only available with CPython') | |
|
653 | ||
|
654 | if options.pure and options.rust: | |
|
655 | parser.error('--rust cannot be used with --pure') | |
|
656 | ||
|
657 | if options.rust and options.no_rust: | |
|
658 | parser.error('--rust cannot be used with --no-rust') | |
|
659 | ||
|
640 | 660 | if options.local: |
|
641 | 661 | if options.with_hg or options.with_chg: |
|
642 | 662 | parser.error('--local cannot be used with --with-hg or --with-chg') |
@@ -3093,6 +3113,13 b' class TestRunner(object):' | |||
|
3093 | 3113 | if self.options.pure: |
|
3094 | 3114 | os.environ["HGTEST_RUN_TESTS_PURE"] = "--pure" |
|
3095 | 3115 | os.environ["HGMODULEPOLICY"] = "py" |
|
3116 | if self.options.rust: | |
|
3117 | os.environ["HGMODULEPOLICY"] = "rust+c" | |
|
3118 | if self.options.no_rust: | |
|
3119 | current_policy = os.environ.get("HGMODULEPOLICY", "") | |
|
3120 | if current_policy.startswith("rust+"): | |
|
3121 | os.environ["HGMODULEPOLICY"] = current_policy[len("rust+") :] | |
|
3122 | os.environ.pop("HGWITHRUSTEXT", None) | |
|
3096 | 3123 | |
|
3097 | 3124 | if self.options.allow_slow_tests: |
|
3098 | 3125 | os.environ["HGTEST_SLOW"] = "slow" |
@@ -3426,6 +3453,10 b' class TestRunner(object):' | |||
|
3426 | 3453 | setup_opts = b"" |
|
3427 | 3454 | if self.options.pure: |
|
3428 | 3455 | setup_opts = b"--pure" |
|
3456 | elif self.options.rust: | |
|
3457 | setup_opts = b"--rust" | |
|
3458 | elif self.options.no_rust: | |
|
3459 | setup_opts = b"--no-rust" | |
|
3429 | 3460 | |
|
3430 | 3461 | # Run installer in hg root |
|
3431 | 3462 | script = os.path.realpath(sys.argv[0]) |
General Comments 0
You need to be logged in to leave comments.
Login now