mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 00:21:07 +01:00
Pull Request resolved: https://github.com/pytorch/pytorch/pull/134799 Approved by: https://github.com/ezyang
144 lines
5.3 KiB
Python
144 lines
5.3 KiB
Python
# Owner(s): ["module: unknown"]
|
|
|
|
import os
|
|
|
|
from torch._utils_internal import justknobs_feature, JustKnobsConfig
|
|
from torch.testing._internal.common_utils import ( # type: ignore[attr-defined]
|
|
load_tests,
|
|
)
|
|
|
|
|
|
# load_tests from torch.testing._internal.common_utils is used to automatically filter tests for
|
|
# sharding on sandcastle. This line silences flake warnings
|
|
load_tests = load_tests
|
|
|
|
from torch.testing._internal.common_utils import run_tests, TestCase
|
|
|
|
|
|
class TestJustKnob(TestCase):
|
|
def test_justknob_config(self):
|
|
with self.subTest("Returns True"):
|
|
a = JustKnobsConfig()
|
|
self.assertTrue(a.get())
|
|
with self.subTest("Returns False"):
|
|
a = JustKnobsConfig(name="fake_name", default=False)
|
|
self.assertFalse(a.get())
|
|
with self.subTest("Returns True via config"):
|
|
a = JustKnobsConfig(name="fake_name", default=False)
|
|
a.set(True)
|
|
self.assertTrue(a.get())
|
|
with self.subTest("Returns True via env"):
|
|
os.environ["FAKE_FEATURE"] = "1"
|
|
a = JustKnobsConfig(
|
|
name="fake_name", env_name="FAKE_FEATURE", default=False
|
|
)
|
|
self.assertTrue(a.get())
|
|
with self.subTest("Returns same value consistently"):
|
|
a = JustKnobsConfig(name="fake_name", default=False)
|
|
a.set(True)
|
|
self.assertTrue(a.get())
|
|
a.set(False)
|
|
self.assertTrue(a.get())
|
|
with self.subTest("Checks __bool__"):
|
|
a = JustKnobsConfig(name="fake_name", default=False)
|
|
if a:
|
|
raise RuntimeError("Should not be true")
|
|
self.assertFalse(a)
|
|
|
|
def test_justknob_feature(self):
|
|
with self.subTest("OSS is True"):
|
|
self.assertTrue(justknobs_feature("testname"))
|
|
with self.subTest("OSS default=True"):
|
|
self.assertTrue(justknobs_feature("testname", default=True))
|
|
with self.subTest("OSS default=False"):
|
|
self.assertFalse(justknobs_feature("testname", default=False))
|
|
with self.subTest("OSS config=True, default=False"):
|
|
self.assertTrue(
|
|
justknobs_feature("testname", config_value=True, default=False)
|
|
)
|
|
with self.subTest("OSS config=None, default=False"):
|
|
self.assertFalse(
|
|
justknobs_feature("testname", config_value=None, default=False)
|
|
)
|
|
with self.subTest("OSS config=False, default=True"):
|
|
self.assertFalse(
|
|
justknobs_feature("testname", config_value=False, default=True)
|
|
)
|
|
with self.subTest("OSS env is missing, config=False, default=True"):
|
|
self.assertFalse(
|
|
justknobs_feature(
|
|
"testname", config_value=False, env_name="NOTDEFINED", default=False
|
|
)
|
|
)
|
|
with self.subTest("OSS env is missing, default=False"):
|
|
self.assertFalse(
|
|
justknobs_feature("testname", env_name="NOTDEFINED", default=False)
|
|
)
|
|
with self.subTest(
|
|
"OSS config overrides env, config=True, env=False, default=False"
|
|
):
|
|
os.environ["FEATURE_ENV"] = "0"
|
|
self.assertTrue(
|
|
justknobs_feature(
|
|
"testname",
|
|
config_value=True,
|
|
env_name="FEATURE_ENV",
|
|
default=False,
|
|
)
|
|
)
|
|
with self.subTest("OSS env overrides default, , default=False"):
|
|
os.environ["FEATURE_ENV"] = "1"
|
|
self.assertTrue(
|
|
justknobs_feature("testname", env_name="FEATURE_ENV", default=False)
|
|
)
|
|
with self.subTest("OSS env truthy, config=False, default=False"):
|
|
os.environ["FEATURE_ENV"] = "1"
|
|
self.assertTrue(
|
|
justknobs_feature(
|
|
"testname",
|
|
env_name="FEATURE_ENV",
|
|
default=False,
|
|
)
|
|
)
|
|
os.environ["FEATURE_ENV"] = "true"
|
|
self.assertTrue(
|
|
justknobs_feature(
|
|
"testname",
|
|
env_name="FEATURE_ENV",
|
|
default=False,
|
|
)
|
|
)
|
|
os.environ["FEATURE_ENV"] = "TRUE"
|
|
self.assertTrue(
|
|
justknobs_feature(
|
|
"testname",
|
|
env_name="FEATURE_ENV",
|
|
default=False,
|
|
)
|
|
)
|
|
os.environ["FEATURE_ENV"] = "very weird true"
|
|
self.assertTrue(
|
|
justknobs_feature(
|
|
"testname",
|
|
env_name="FEATURE_ENV",
|
|
default=False,
|
|
)
|
|
)
|
|
with self.subTest("OSS env false, default=True"):
|
|
os.environ["FEATURE_ENV"] = "0"
|
|
self.assertFalse(
|
|
justknobs_feature("testname", env_name="FEATURE_ENV", default=True)
|
|
)
|
|
os.environ["FEATURE_ENV"] = "false"
|
|
self.assertFalse(
|
|
justknobs_feature("testname", env_name="FEATURE_ENV", default=True)
|
|
)
|
|
os.environ["FEATURE_ENV"] = "FALSE"
|
|
self.assertFalse(
|
|
justknobs_feature("testname", env_name="FEATURE_ENV", default=True)
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_tests()
|