for method_name in self._get_single_simulator_methods()
                for device_type in self.device_types
            ]
        )
        # Only run multiple-Simulator tests against a custom set.
        suite.addTests(
            [
                MultipleSimulatorTestCase(methodName=method_name, fbsimctl_path=self.fbsimctl_path)
                for method_name in self._get_multiple_simulator_methods()
            ]
        )
        return suite


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.description = "fbsimctl e2e test runner"
    parser.add_argument(
        "--fbsimctl-path", default="executable-under-test/fbsimctl", help="The location of the fbsimctl executable"
    )
    parser.add_argument(
        "--name-filter", default=None, help="A substring to match tests against, will only run matching tests"
    )
    arguments = parser.parse_args()

    suite_builder = SuiteBuilder(
        fbsimctl_path=find_fbsimctl_path(arguments.fbsimctl_path), name_filter=arguments.name_filter
    )
    runner = unittest.TextTestRunner(verbosity=2, failfast=True)
    runner.run(suite_builder.build())
            for method_name
            in self._get_multiple_simulator_methods()
        ])
        return suite


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.description = 'fbsimctl e2e test runner'
    parser.add_argument(
        '--fbsimctl-path',
        default='executable-under-test/fbsimctl',
        help='The location of the fbsimctl executable',
    )
    parser.add_argument(
        '--name-filter',
        default=None,
        help='A substring to match tests against, will only run matching tests',
    )
    arguments = parser.parse_args()

    suite_builder = SuiteBuilder(
        fbsimctl_path=find_fbsimctl_path(arguments.fbsimctl_path),
        name_filter=arguments.name_filter,
    )
    runner = unittest.TextTestRunner(
        verbosity=2,
        failfast=True,
    )
    runner.run(suite_builder.build())
                fbsimctl_path=self.fbsimctl_path,
            ) for method_name in self._get_multiple_simulator_methods()
        ])
        return suite


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.description = 'fbsimctl e2e test runner'
    parser.add_argument(
        '--fbsimctl-path',
        default='executable-under-test/fbsimctl',
        help='The location of the fbsimctl executable',
    )
    parser.add_argument(
        '--name-filter',
        default=None,
        help='A substring to match tests against, will only run matching tests',
    )
    arguments = parser.parse_args()

    suite_builder = SuiteBuilder(
        fbsimctl_path=find_fbsimctl_path(arguments.fbsimctl_path),
        name_filter=arguments.name_filter,
    )
    runner = unittest.TextTestRunner(
        verbosity=2,
        failfast=True,
    )
    runner.run(suite_builder.build())