|  | # Owner(s): ["oncall: package/deploy"] | 
|  |  | 
|  | import textwrap | 
|  | import types | 
|  |  | 
|  | from torch.utils._freeze import Freezer, PATH_MARKER | 
|  | from torch.testing._internal.common_utils import run_tests, TestCase | 
|  |  | 
|  |  | 
|  | class TestFreezer(TestCase): | 
|  | """Tests the freeze.py script""" | 
|  |  | 
|  | def test_compile_string(self): | 
|  | freezer = Freezer(True) | 
|  | code_str = textwrap.dedent( | 
|  | """ | 
|  | class MyCls: | 
|  | def __init__(self): | 
|  | pass | 
|  | """ | 
|  | ) | 
|  | co = freezer.compile_string(code_str) | 
|  | num_co = 0 | 
|  |  | 
|  | def verify_filename(co: types.CodeType): | 
|  | nonlocal num_co | 
|  |  | 
|  | if not isinstance(co, types.CodeType): | 
|  | return | 
|  |  | 
|  | self.assertEqual(PATH_MARKER, co.co_filename) | 
|  | num_co += 1 | 
|  |  | 
|  | for nested_co in co.co_consts: | 
|  | verify_filename(nested_co) | 
|  |  | 
|  | verify_filename(co) | 
|  | # there is at least one nested code object besides the top level one | 
|  | self.assertTrue(num_co >= 2) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | run_tests() |