diff --git a/source/isaaclab_newton/changelog.d/jichuanh-ci-marker-selection.skip b/source/isaaclab_newton/changelog.d/jichuanh-ci-marker-selection.skip new file mode 100644 index 000000000000..51bcbf53b393 --- /dev/null +++ b/source/isaaclab_newton/changelog.d/jichuanh-ci-marker-selection.skip @@ -0,0 +1 @@ +Marked the test files that run without Kit as kitless so a marker run can select them. diff --git a/source/isaaclab_newton/test/assets/test_cable_object.py b/source/isaaclab_newton/test/assets/test_cable_object.py index 3b4398a23389..e4f470184c2c 100644 --- a/source/isaaclab_newton/test/assets/test_cable_object.py +++ b/source/isaaclab_newton/test/assets/test_cable_object.py @@ -29,6 +29,8 @@ from isaaclab_contrib.coupling import CouplerEntryCfg, CouplerProxyCfg, CouplerProxyMappingCfg +pytestmark = pytest.mark.kitless + @configclass class _CableSceneCfg(InteractiveSceneCfg): diff --git a/source/isaaclab_newton/test/assets/test_joint_coordinates.py b/source/isaaclab_newton/test/assets/test_joint_coordinates.py index b4e53d699c96..6efb0a35ff04 100644 --- a/source/isaaclab_newton/test/assets/test_joint_coordinates.py +++ b/source/isaaclab_newton/test/assets/test_joint_coordinates.py @@ -23,6 +23,8 @@ from newton.selection import ArticulationView from scipy.spatial.transform import Rotation +pytestmark = pytest.mark.kitless + # One revolute, one ball, one revolute -- the layout that hides an off-by-one when the tables are # built by walking the model instead of the view's own per-joint counts. COORD_COUNTS = [1, 4, 1] diff --git a/source/isaaclab_newton/test/assets/test_mpm_object.py b/source/isaaclab_newton/test/assets/test_mpm_object.py index 3dacc6141880..cbf9db9b85a8 100644 --- a/source/isaaclab_newton/test/assets/test_mpm_object.py +++ b/source/isaaclab_newton/test/assets/test_mpm_object.py @@ -11,6 +11,8 @@ import pytest import torch +pytestmark = pytest.mark.kitless + newton = pytest.importorskip("newton") from isaaclab_newton.assets.mpm_object import MPMObject, MPMObjectCfg diff --git a/source/isaaclab_newton/test/cloner/test_clone_xform_math.py b/source/isaaclab_newton/test/cloner/test_clone_xform_math.py index 78507b19e4a7..3de464eeabed 100644 --- a/source/isaaclab_newton/test/cloner/test_clone_xform_math.py +++ b/source/isaaclab_newton/test/cloner/test_clone_xform_math.py @@ -10,6 +10,8 @@ import warp as wp from isaaclab_newton.cloner.newton_clone_utils import _quat_rotate +pytestmark = pytest.mark.kitless + _TOL = 1e-5 # Hand-picked quaternions (xyzw) that cover identity and the 180-degree cases where a sign diff --git a/source/isaaclab_newton/test/cloner/test_collision_approximation.py b/source/isaaclab_newton/test/cloner/test_collision_approximation.py index fee301834066..a946745358b4 100644 --- a/source/isaaclab_newton/test/cloner/test_collision_approximation.py +++ b/source/isaaclab_newton/test/cloner/test_collision_approximation.py @@ -12,6 +12,8 @@ from pxr import Sdf, Usd, UsdGeom, UsdPhysics, UsdShade +pytestmark = pytest.mark.kitless + _SOURCE = "/World/Asset" diff --git a/source/isaaclab_newton/test/cloner/test_newton_builder_world_hook.py b/source/isaaclab_newton/test/cloner/test_newton_builder_world_hook.py index 73103102995b..ac6b9ec4f5a3 100644 --- a/source/isaaclab_newton/test/cloner/test_newton_builder_world_hook.py +++ b/source/isaaclab_newton/test/cloner/test_newton_builder_world_hook.py @@ -23,6 +23,8 @@ from isaaclab.cloner import make_clone_plan from isaaclab.sim import SimulationCfg, SimulationContext, SpawnerCfg, build_simulation_context +pytestmark = pytest.mark.kitless + replicate_module = importlib.import_module("isaaclab_newton.cloner.replicate") diff --git a/source/isaaclab_newton/test/cloner/test_rename_builder_labels.py b/source/isaaclab_newton/test/cloner/test_rename_builder_labels.py index 07bc6e32ef48..4fee8e291911 100644 --- a/source/isaaclab_newton/test/cloner/test_rename_builder_labels.py +++ b/source/isaaclab_newton/test/cloner/test_rename_builder_labels.py @@ -11,6 +11,7 @@ import newton import numpy as np +import pytest import warp as wp from isaaclab_newton.cloner import NewtonReplicateContext from isaaclab_newton.cloner import newton_clone_utils as newton_clone_utils_module @@ -27,6 +28,8 @@ from isaaclab.sim import SimulationContext, SpawnerCfg from isaaclab.sim.schemas import define_deformable_curve_properties +pytestmark = pytest.mark.kitless + class TestReplicateBuilderMapping(unittest.TestCase): def test_world_prototypes_preserve_repeated_instances_and_default_poses(self): diff --git a/source/isaaclab_newton/test/cloner/test_visual_shape_import.py b/source/isaaclab_newton/test/cloner/test_visual_shape_import.py index 6cd49c001fba..9ff3a49c13f7 100644 --- a/source/isaaclab_newton/test/cloner/test_visual_shape_import.py +++ b/source/isaaclab_newton/test/cloner/test_visual_shape_import.py @@ -12,6 +12,8 @@ from pxr import Usd, UsdGeom, UsdPhysics +pytestmark = pytest.mark.kitless + @pytest.mark.parametrize("load_visual_shapes", [True, False]) @pytest.mark.parametrize("dynamic", [True, False]) diff --git a/source/isaaclab_newton/test/controllers/test_newton_controllers.py b/source/isaaclab_newton/test/controllers/test_newton_controllers.py index 61b3fa32af33..48b62dec6957 100644 --- a/source/isaaclab_newton/test/controllers/test_newton_controllers.py +++ b/source/isaaclab_newton/test/controllers/test_newton_controllers.py @@ -24,6 +24,8 @@ from isaaclab.utils import math as math_utils +pytestmark = pytest.mark.kitless + _NUM_ENVS = 3 _NUM_JOINTS = 7 _DEVICE = "cpu" diff --git a/source/isaaclab_newton/test/controllers/test_newton_ik_solver.py b/source/isaaclab_newton/test/controllers/test_newton_ik_solver.py index 7ea6e8733cce..d338747111c1 100644 --- a/source/isaaclab_newton/test/controllers/test_newton_ik_solver.py +++ b/source/isaaclab_newton/test/controllers/test_newton_ik_solver.py @@ -7,6 +7,7 @@ import isaaclab_newton.controllers.ik.newton_ik_objectives as objectives_module import isaaclab_newton.controllers.ik.newton_ik_solver as ik_solver_module +import pytest import torch import warp as wp from isaaclab_newton.controllers.ik.newton_ik_objectives import ( @@ -24,6 +25,8 @@ from isaaclab.utils import configclass +pytestmark = pytest.mark.kitless + # Maps the stub body names used across these tests to Newton link indices. _LINKS = {"ee": 0, "torso": 1, "custom": 0} diff --git a/source/isaaclab_newton/test/envs/test_events.py b/source/isaaclab_newton/test/envs/test_events.py index 33b62bffdba7..f45b49f0e4e6 100644 --- a/source/isaaclab_newton/test/envs/test_events.py +++ b/source/isaaclab_newton/test/envs/test_events.py @@ -37,6 +37,8 @@ from isaaclab.utils import configclass from isaaclab.visualizers import VisualizerCfg +pytestmark = pytest.mark.kitless + @configclass class ActionsCfg: diff --git a/source/isaaclab_newton/test/physics/test_mjwarp_tendon_control.py b/source/isaaclab_newton/test/physics/test_mjwarp_tendon_control.py index 93c6413fb639..da9490ca595b 100644 --- a/source/isaaclab_newton/test/physics/test_mjwarp_tendon_control.py +++ b/source/isaaclab_newton/test/physics/test_mjwarp_tendon_control.py @@ -15,6 +15,8 @@ ) from newton.solvers import SolverMuJoCo +pytestmark = pytest.mark.kitless + _TENDON = int(SolverMuJoCo.TrnType.TENDON) _JOINT = 0 diff --git a/source/isaaclab_newton/test/physics/test_mpm_reset_mask_contract.py b/source/isaaclab_newton/test/physics/test_mpm_reset_mask_contract.py index 3f534458494d..38f1738d2ab4 100644 --- a/source/isaaclab_newton/test/physics/test_mpm_reset_mask_contract.py +++ b/source/isaaclab_newton/test/physics/test_mpm_reset_mask_contract.py @@ -13,6 +13,8 @@ from isaaclab_newton.physics import MPMSolverCfg, NewtonMPMManager from newton.solvers import SolverImplicitMPM +pytestmark = pytest.mark.kitless + @pytest.fixture(scope="module") def cpu_mpm_solver_and_state(): diff --git a/source/isaaclab_newton/test/physics/test_newton_manager_abstraction.py b/source/isaaclab_newton/test/physics/test_newton_manager_abstraction.py index 51c354e87c47..168f097a6edd 100644 --- a/source/isaaclab_newton/test/physics/test_newton_manager_abstraction.py +++ b/source/isaaclab_newton/test/physics/test_newton_manager_abstraction.py @@ -69,6 +69,8 @@ from isaaclab.sim import SimulationCfg, SimulationContext, build_simulation_context from isaaclab.test.utils import test_devices +pytestmark = pytest.mark.kitless + # --------------------------------------------------------------------------- # Lightweight (no sim) parametrisation # --------------------------------------------------------------------------- diff --git a/source/isaaclab_newton/test/physics/test_vbd_core.py b/source/isaaclab_newton/test/physics/test_vbd_core.py index 9ec4548bc458..3e3e162e42bc 100644 --- a/source/isaaclab_newton/test/physics/test_vbd_core.py +++ b/source/isaaclab_newton/test/physics/test_vbd_core.py @@ -20,6 +20,8 @@ from isaaclab.sim import BackendCfg, SimulationContext from isaaclab.utils import replace +pytestmark = pytest.mark.kitless + # The soft-contact and simulation axes are independent, so each value is covered once. @pytest.mark.parametrize( diff --git a/source/isaaclab_newton/test/renderers/test_segmentation.py b/source/isaaclab_newton/test/renderers/test_segmentation.py index e38194b21735..8a708f45ccd0 100644 --- a/source/isaaclab_newton/test/renderers/test_segmentation.py +++ b/source/isaaclab_newton/test/renderers/test_segmentation.py @@ -27,6 +27,8 @@ from isaaclab.renderers.segmentation_colors import BACKGROUND_ID, UNLABELLED_ID, pack_rgba, random_color_from_id from isaaclab.sim.utils.semantics import add_labels +pytestmark = pytest.mark.kitless + def _cfg(**overrides): """Minimal renderer-cfg stand-in exposing only the fields the mapper reads.""" diff --git a/source/isaaclab_newton/test/renderers/test_visual_material.py b/source/isaaclab_newton/test/renderers/test_visual_material.py index c873f109bb87..2663f8498646 100644 --- a/source/isaaclab_newton/test/renderers/test_visual_material.py +++ b/source/isaaclab_newton/test/renderers/test_visual_material.py @@ -5,6 +5,7 @@ """Tests for Newton's compiled visual-material writers.""" +import pytest import torch import warp as wp from isaaclab_newton.physics import NewtonBackendCfg, NewtonBuilderCfg @@ -21,6 +22,8 @@ from isaaclab.renderers.base_renderer import VisualMaterialBatch from isaaclab.sim import SimulationContext +pytestmark = pytest.mark.kitless + def _srgb(colors: torch.Tensor) -> torch.Tensor: return torch.where(colors <= 0.0031308, 12.92 * colors, 1.055 * colors.pow(1.0 / 2.4) - 0.055) diff --git a/source/isaaclab_newton/test/sensors/test_camera_opencv_distortion_newton.py b/source/isaaclab_newton/test/sensors/test_camera_opencv_distortion_newton.py index d5fb86f9fc33..a3cdce732fa3 100644 --- a/source/isaaclab_newton/test/sensors/test_camera_opencv_distortion_newton.py +++ b/source/isaaclab_newton/test/sensors/test_camera_opencv_distortion_newton.py @@ -28,7 +28,7 @@ from isaaclab.utils.configclass import configclass from isaaclab.utils.math import create_rotation_matrix_from_view, quat_from_matrix -pytestmark = [pytest.mark.integration, pytest.mark.rendering] +pytestmark = [pytest.mark.integration, pytest.mark.rendering, pytest.mark.kitless] SIM_DT = 1.0 / 60.0 WIDTH, HEIGHT = 640, 480 diff --git a/source/isaaclab_newton/test/sensors/test_contact_sensor.py b/source/isaaclab_newton/test/sensors/test_contact_sensor.py index 7babb6d24639..dde406fd214e 100644 --- a/source/isaaclab_newton/test/sensors/test_contact_sensor.py +++ b/source/isaaclab_newton/test/sensors/test_contact_sensor.py @@ -57,6 +57,8 @@ from isaaclab_assets.robots.allegro import ALLEGRO_HAND_CFG +pytestmark = pytest.mark.kitless + ## # Scene Configuration ## diff --git a/source/isaaclab_newton/test/sensors/test_contact_sensor_history.py b/source/isaaclab_newton/test/sensors/test_contact_sensor_history.py index 79bf2c7ec2db..141e780c7b2b 100644 --- a/source/isaaclab_newton/test/sensors/test_contact_sensor_history.py +++ b/source/isaaclab_newton/test/sensors/test_contact_sensor_history.py @@ -9,6 +9,7 @@ import warnings +import pytest import torch import warp as wp from isaaclab_newton.sensors.contact_sensor.contact_sensor_data import ContactSensorData @@ -17,6 +18,8 @@ update_contact_sensor_kernel, ) +pytestmark = pytest.mark.kitless + def test_force_matrix_history_rolls_newest_first_and_honors_mask(): """Test newest-first ordering of every history buffer without advancing masked environments. diff --git a/source/isaaclab_newton/test/sensors/test_frame_transformer.py b/source/isaaclab_newton/test/sensors/test_frame_transformer.py index 319bb3a89fe1..b644e08db3b1 100644 --- a/source/isaaclab_newton/test/sensors/test_frame_transformer.py +++ b/source/isaaclab_newton/test/sensors/test_frame_transformer.py @@ -33,6 +33,8 @@ ## from isaaclab_assets.robots.anymal import ANYMAL_C_CFG # isort:skip +pytestmark = pytest.mark.kitless + def quat_from_euler_rpy(roll, pitch, yaw, degrees=False): """Converts Euler XYZ to Quaternion (x, y, z, w).""" diff --git a/source/isaaclab_newton/test/sensors/test_imu.py b/source/isaaclab_newton/test/sensors/test_imu.py index fbb77ecbe00a..6e50a335f142 100644 --- a/source/isaaclab_newton/test/sensors/test_imu.py +++ b/source/isaaclab_newton/test/sensors/test_imu.py @@ -22,6 +22,8 @@ from isaaclab.terrains import TerrainImporterCfg from isaaclab.utils import configclass +pytestmark = pytest.mark.kitless + @configclass class ImuTestSceneCfg(InteractiveSceneCfg): diff --git a/source/isaaclab_newton/test/sensors/test_joint_wrench_sensor.py b/source/isaaclab_newton/test/sensors/test_joint_wrench_sensor.py index 578338477b42..cdc7c971c266 100644 --- a/source/isaaclab_newton/test/sensors/test_joint_wrench_sensor.py +++ b/source/isaaclab_newton/test/sensors/test_joint_wrench_sensor.py @@ -36,6 +36,8 @@ from isaaclab_assets.robots.ant import ANT_CFG +pytestmark = pytest.mark.kitless + def _make_single_joint_articulation_cfg() -> ArticulationCfg: """Single-joint revolute test articulation (root ``CenterPivot`` + arm ``Arm``).""" diff --git a/source/isaaclab_newton/test/sensors/test_newton_raycast_sensor.py b/source/isaaclab_newton/test/sensors/test_newton_raycast_sensor.py index 4216a21eb42d..2ebeaa35fdb5 100644 --- a/source/isaaclab_newton/test/sensors/test_newton_raycast_sensor.py +++ b/source/isaaclab_newton/test/sensors/test_newton_raycast_sensor.py @@ -41,6 +41,8 @@ from isaaclab.terrains import TerrainImporterCfg from isaaclab.utils import configclass +pytestmark = pytest.mark.kitless + SENSOR_HEIGHT = 2.0 RAY_OFFSET = 0.2 RAY_START_HEIGHT = SENSOR_HEIGHT - RAY_OFFSET diff --git a/source/isaaclab_newton/test/sensors/test_pva.py b/source/isaaclab_newton/test/sensors/test_pva.py index 68f3f2e5cdfa..3b5514779e8c 100644 --- a/source/isaaclab_newton/test/sensors/test_pva.py +++ b/source/isaaclab_newton/test/sensors/test_pva.py @@ -22,6 +22,8 @@ from isaaclab.terrains import TerrainImporterCfg from isaaclab.utils import configclass +pytestmark = pytest.mark.kitless + @configclass class PvaTestSceneCfg(InteractiveSceneCfg): diff --git a/source/isaaclab_newton/test/sensors/test_site_injection.py b/source/isaaclab_newton/test/sensors/test_site_injection.py index a1f9c65b42c3..0bd5fec1b4e1 100644 --- a/source/isaaclab_newton/test/sensors/test_site_injection.py +++ b/source/isaaclab_newton/test/sensors/test_site_injection.py @@ -23,6 +23,8 @@ from isaaclab.utils import configclass from isaaclab.utils.warp.math_ops import transform_to_vec_quat +pytestmark = pytest.mark.kitless + # --------------------------------------------------------------------------- # transform_to_vec_quat # --------------------------------------------------------------------------- diff --git a/source/isaaclab_newton/test/sim/test_cable_usd_import.py b/source/isaaclab_newton/test/sim/test_cable_usd_import.py index 7bcfae13e9de..cce29078fb39 100644 --- a/source/isaaclab_newton/test/sim/test_cable_usd_import.py +++ b/source/isaaclab_newton/test/sim/test_cable_usd_import.py @@ -10,6 +10,8 @@ from isaaclab.sim.spawners.materials import CableMaterialCfg from isaaclab.sim.spawners.shapes import CableCfg +pytestmark = pytest.mark.kitless + # Cable joint degrees of freedom, in the order Newton lays them out. _SHEAR_X, _SHEAR_Y, _STRETCH, _BEND_X, _BEND_Y, _TWIST = range(6) diff --git a/source/isaaclab_newton/test/sim/test_mpm_spawners.py b/source/isaaclab_newton/test/sim/test_mpm_spawners.py index 234a03ffcda6..bc4a087601b9 100644 --- a/source/isaaclab_newton/test/sim/test_mpm_spawners.py +++ b/source/isaaclab_newton/test/sim/test_mpm_spawners.py @@ -20,7 +20,7 @@ import isaaclab.sim as sim_utils -pytestmark = pytest.mark.unit +pytestmark = [pytest.mark.unit, pytest.mark.kitless] @pytest.fixture diff --git a/source/isaaclab_newton/test/sim/test_mpm_visualization.py b/source/isaaclab_newton/test/sim/test_mpm_visualization.py index 3b7e283e0988..82739938bf01 100644 --- a/source/isaaclab_newton/test/sim/test_mpm_visualization.py +++ b/source/isaaclab_newton/test/sim/test_mpm_visualization.py @@ -15,6 +15,8 @@ import isaaclab.sim as sim_utils +pytestmark = pytest.mark.kitless + _PRIM_PATHS = ["/World/envs/env_0/Sand/Particles", "/World/envs/env_1/Sand/Particles"] """Environment-namespaced points prims, matching the ``{ENV_REGEX_NS}//Particles`` paths used by MPMObject.""" diff --git a/source/isaaclab_newton/test/sim/test_views_xform_prim_newton.py b/source/isaaclab_newton/test/sim/test_views_xform_prim_newton.py index d8421de46197..92f1af00cc86 100644 --- a/source/isaaclab_newton/test/sim/test_views_xform_prim_newton.py +++ b/source/isaaclab_newton/test/sim/test_views_xform_prim_newton.py @@ -36,6 +36,8 @@ from isaaclab.sim import SimulationCfg, SimulationContext, build_simulation_context from isaaclab.utils import configclass +pytestmark = pytest.mark.kitless + NEWTON_SIM_CFG = SimulationCfg(physics=NewtonCfg(solver_cfg=MJWarpSolverCfg())) WORLD_MARKER_POS = (5.0, 3.0, 1.0) SITE_PATH = "/World/Robot/SiteFrame" diff --git a/source/isaaclab_ov/changelog.d/jichuanh-ci-marker-selection.skip b/source/isaaclab_ov/changelog.d/jichuanh-ci-marker-selection.skip new file mode 100644 index 000000000000..51bcbf53b393 --- /dev/null +++ b/source/isaaclab_ov/changelog.d/jichuanh-ci-marker-selection.skip @@ -0,0 +1 @@ +Marked the test files that run without Kit as kitless so a marker run can select them. diff --git a/source/isaaclab_ov/test/assets/test_articulation.py b/source/isaaclab_ov/test/assets/test_articulation.py index e9b758f99eff..989905ba9ad0 100644 --- a/source/isaaclab_ov/test/assets/test_articulation.py +++ b/source/isaaclab_ov/test/assets/test_articulation.py @@ -72,7 +72,7 @@ from isaaclab_assets import FRANKA_PANDA_CFG # noqa: E402 -pytestmark = pytest.mark.integration +pytestmark = [pytest.mark.integration, pytest.mark.kitless] _FIXTURE = Path(__file__).parent / "data" / "articulation_ordering_branching.usda" _STIFFNESS, _DAMPING, _MAX_FORCE = 5.0, 0.5, 100.0 diff --git a/source/isaaclab_ov/test/assets/test_deformable_object.py b/source/isaaclab_ov/test/assets/test_deformable_object.py index bc9fc6a2e04b..94a3e4eb1364 100644 --- a/source/isaaclab_ov/test/assets/test_deformable_object.py +++ b/source/isaaclab_ov/test/assets/test_deformable_object.py @@ -44,6 +44,8 @@ pretriangulated_surface_deformable_spawn_cfg, ) +pytestmark = pytest.mark.kitless + wp.init() diff --git a/source/isaaclab_ov/test/assets/test_rigid_object.py b/source/isaaclab_ov/test/assets/test_rigid_object.py index 76f573229da5..8fcef55a979b 100644 --- a/source/isaaclab_ov/test/assets/test_rigid_object.py +++ b/source/isaaclab_ov/test/assets/test_rigid_object.py @@ -46,7 +46,7 @@ from isaaclab.utils import configclass # noqa: E402 from isaaclab.utils.math import quat_apply_inverse, quat_mul # noqa: E402 -pytestmark = pytest.mark.integration +pytestmark = [pytest.mark.integration, pytest.mark.kitless] _NUM_CUBES = 2 _NUM_ENVS, _NUM_BODIES = 2, 3 diff --git a/source/isaaclab_ov/test/envs/test_events.py b/source/isaaclab_ov/test/envs/test_events.py index b84fab5973a6..7348f79d112b 100644 --- a/source/isaaclab_ov/test/envs/test_events.py +++ b/source/isaaclab_ov/test/envs/test_events.py @@ -32,6 +32,8 @@ from isaaclab.sim import SimulationCfg, build_simulation_context from isaaclab.test.utils import DeviceScope, test_devices +pytestmark = pytest.mark.kitless + @pytest.fixture(scope="module", params=test_devices(DeviceScope.CUDA)) def event_env(request, tmp_path_factory): diff --git a/source/isaaclab_ov/test/physics/test_ovphysx_compat.py b/source/isaaclab_ov/test/physics/test_ovphysx_compat.py index ea9cb1f471e9..7951836a07f3 100644 --- a/source/isaaclab_ov/test/physics/test_ovphysx_compat.py +++ b/source/isaaclab_ov/test/physics/test_ovphysx_compat.py @@ -22,6 +22,7 @@ bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}", ), + pytest.mark.kitless, ] if not _MISSING_MODULES: diff --git a/source/isaaclab_ov/test/physics/test_ovphysx_gravity.py b/source/isaaclab_ov/test/physics/test_ovphysx_gravity.py index 8661417e0bb9..beb117425a48 100644 --- a/source/isaaclab_ov/test/physics/test_ovphysx_gravity.py +++ b/source/isaaclab_ov/test/physics/test_ovphysx_gravity.py @@ -23,6 +23,8 @@ from isaaclab.sim import SimulationCfg, build_simulation_context from isaaclab.test.utils import DeviceScope, test_devices +pytestmark = pytest.mark.kitless + @pytest.mark.parametrize("device", test_devices(DeviceScope.CUDA)) def test_gravity_event_changes_rigid_body_motion(device): diff --git a/source/isaaclab_ov/test/physics/test_ovphysx_manager_lifecycle.py b/source/isaaclab_ov/test/physics/test_ovphysx_manager_lifecycle.py index 854318865b7c..922f41080bce 100644 --- a/source/isaaclab_ov/test/physics/test_ovphysx_manager_lifecycle.py +++ b/source/isaaclab_ov/test/physics/test_ovphysx_manager_lifecycle.py @@ -20,6 +20,8 @@ from isaaclab.test.utils import DeviceScope, test_devices +pytestmark = pytest.mark.kitless + pytest.importorskip("ovphysx.types", reason="ovphysx wheel not installed") _CPU_DEVICES = test_devices(DeviceScope.CPU) diff --git a/source/isaaclab_ov/test/physics/test_ovphysx_scene_data_backend.py b/source/isaaclab_ov/test/physics/test_ovphysx_scene_data_backend.py index e32f26dccf04..bd5f49f8f798 100644 --- a/source/isaaclab_ov/test/physics/test_ovphysx_scene_data_backend.py +++ b/source/isaaclab_ov/test/physics/test_ovphysx_scene_data_backend.py @@ -12,6 +12,8 @@ import pytest +pytestmark = pytest.mark.kitless + # The OVPhysX runtime wheel is optional. Skip gracefully when it is not installed; # CI jobs that need OVPhysX coverage install it explicitly. pytest.importorskip("ovphysx.types", reason="ovphysx wheel not installed") diff --git a/source/isaaclab_ov/test/sensors/test_contact_sensor.py b/source/isaaclab_ov/test/sensors/test_contact_sensor.py index af5143faac0a..c23b12bb8ad1 100644 --- a/source/isaaclab_ov/test/sensors/test_contact_sensor.py +++ b/source/isaaclab_ov/test/sensors/test_contact_sensor.py @@ -52,6 +52,8 @@ from isaaclab.test.utils import test_devices # noqa: E402 from isaaclab.utils import configclass, replace # noqa: E402 +pytestmark = pytest.mark.kitless + wp.init() diff --git a/source/isaaclab_ov/test/sensors/test_contact_sensor_kernels.py b/source/isaaclab_ov/test/sensors/test_contact_sensor_kernels.py index 0f751a084d2d..a3011b3b0cd7 100644 --- a/source/isaaclab_ov/test/sensors/test_contact_sensor_kernels.py +++ b/source/isaaclab_ov/test/sensors/test_contact_sensor_kernels.py @@ -12,6 +12,8 @@ from isaaclab.test.utils import DeviceScope, test_devices +pytestmark = pytest.mark.kitless + @pytest.mark.parametrize("device", test_devices(DeviceScope.CUDA)) @pytest.mark.parametrize("use_mask, capacity", [(False, None), (True, 5)]) diff --git a/source/isaaclab_ov/test/sensors/test_frame_transformer.py b/source/isaaclab_ov/test/sensors/test_frame_transformer.py index ca4ccc3951a4..5dfdd6ad68aa 100644 --- a/source/isaaclab_ov/test/sensors/test_frame_transformer.py +++ b/source/isaaclab_ov/test/sensors/test_frame_transformer.py @@ -24,6 +24,8 @@ import torch import warp as wp +pytestmark = pytest.mark.kitless + # OVRTX-only CI jobs collect the consolidated isaaclab_ov test suite without # the optional ovphysx wheel. Skip the OVPhysX tests gracefully in that case. pytest.importorskip("ovphysx.types", reason="ovphysx wheel not installed") diff --git a/source/isaaclab_ov/test/sensors/test_imu.py b/source/isaaclab_ov/test/sensors/test_imu.py index 8ea15cae95c7..9a36e76181df 100644 --- a/source/isaaclab_ov/test/sensors/test_imu.py +++ b/source/isaaclab_ov/test/sensors/test_imu.py @@ -32,6 +32,8 @@ # --------------------------------------------------------------------------- import pytest +pytestmark = pytest.mark.kitless + pytest.importorskip("ovphysx.types", reason="ovphysx wheel not installed") _TT_module = pytest.importorskip( "isaaclab_ov.tensor_types", diff --git a/source/isaaclab_ov/test/sensors/test_joint_wrench_sensor.py b/source/isaaclab_ov/test/sensors/test_joint_wrench_sensor.py index 4cf105be2211..db19ec7971df 100644 --- a/source/isaaclab_ov/test/sensors/test_joint_wrench_sensor.py +++ b/source/isaaclab_ov/test/sensors/test_joint_wrench_sensor.py @@ -50,6 +50,8 @@ from isaaclab_assets.robots.ant import ANT_CFG # noqa: E402 +pytestmark = pytest.mark.kitless + wp.init() diff --git a/source/isaaclab_ov/test/sensors/test_pva.py b/source/isaaclab_ov/test/sensors/test_pva.py index 39dff9597416..b10bbf60f8f1 100644 --- a/source/isaaclab_ov/test/sensors/test_pva.py +++ b/source/isaaclab_ov/test/sensors/test_pva.py @@ -27,6 +27,8 @@ # --------------------------------------------------------------------------- import pytest +pytestmark = pytest.mark.kitless + pytest.importorskip("ovphysx.types", reason="ovphysx wheel not installed") _TT_module = pytest.importorskip( "isaaclab_ov.tensor_types", diff --git a/source/isaaclab_ov/test/sensors/test_ray_caster.py b/source/isaaclab_ov/test/sensors/test_ray_caster.py index 76ef0b77eb86..37bb37652f21 100644 --- a/source/isaaclab_ov/test/sensors/test_ray_caster.py +++ b/source/isaaclab_ov/test/sensors/test_ray_caster.py @@ -27,7 +27,7 @@ from isaaclab.test.utils import DeviceScope, test_devices from isaaclab.utils import configclass, instantiate -pytestmark = pytest.mark.integration +pytestmark = [pytest.mark.integration, pytest.mark.kitless] @pytest.mark.parametrize("device", test_devices(DeviceScope.CUDA)) diff --git a/source/isaaclab_ov/test/sim/test_ovphysx_view.py b/source/isaaclab_ov/test/sim/test_ovphysx_view.py index 8bca85fad3cd..9d50cf817045 100644 --- a/source/isaaclab_ov/test/sim/test_ovphysx_view.py +++ b/source/isaaclab_ov/test/sim/test_ovphysx_view.py @@ -41,6 +41,8 @@ ) from ovphysx.types import TensorType # noqa: E402 +pytestmark = pytest.mark.kitless + wp.init() wp.set_device("cpu") _HAS_CUDA = wp.get_cuda_device_count() > 0 diff --git a/source/isaaclab_ov/test/sim/test_views_xform_prim_ovphysx.py b/source/isaaclab_ov/test/sim/test_views_xform_prim_ovphysx.py index 22b854ce0a51..66d380ffed33 100644 --- a/source/isaaclab_ov/test/sim/test_views_xform_prim_ovphysx.py +++ b/source/isaaclab_ov/test/sim/test_views_xform_prim_ovphysx.py @@ -25,6 +25,8 @@ from isaaclab.sim import SimulationCfg, build_simulation_context # noqa: E402 from isaaclab.sim.views import FrameView # noqa: E402 +pytestmark = pytest.mark.kitless + OVPHYSX_SIM_CFG = SimulationCfg(physics=OvPhysxCfg()) diff --git a/source/isaaclab_ov/test/test_cloner.py b/source/isaaclab_ov/test/test_cloner.py index 83df0541380f..e334d3ef58a3 100644 --- a/source/isaaclab_ov/test/test_cloner.py +++ b/source/isaaclab_ov/test/test_cloner.py @@ -20,6 +20,8 @@ from isaaclab.cloner import make_clone_plan from isaaclab.sim import SimulationContext +pytestmark = pytest.mark.kitless + def _pose_matrix(position: tuple[float, float, float], quaternion: tuple[float, float, float, float]) -> Gf.Matrix4d: """Build a USD pose matrix from an xyzw quaternion.""" diff --git a/source/isaaclab_ov/test/test_ovrtx_annotator_utils.py b/source/isaaclab_ov/test/test_ovrtx_annotator_utils.py index 7cf343b56485..3ff13f345ae2 100644 --- a/source/isaaclab_ov/test/test_ovrtx_annotator_utils.py +++ b/source/isaaclab_ov/test/test_ovrtx_annotator_utils.py @@ -18,6 +18,7 @@ bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}", ), + pytest.mark.kitless, ] if not _MISSING_MODULES: diff --git a/source/isaaclab_ov/test/test_ovrtx_clone_plan.py b/source/isaaclab_ov/test/test_ovrtx_clone_plan.py index edb38ad2b0ca..a8e0c5395248 100644 --- a/source/isaaclab_ov/test/test_ovrtx_clone_plan.py +++ b/source/isaaclab_ov/test/test_ovrtx_clone_plan.py @@ -32,6 +32,7 @@ bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}", ), + pytest.mark.kitless, ] if not _MISSING_MODULES: diff --git a/source/isaaclab_ov/test/test_ovrtx_deformable_bindings.py b/source/isaaclab_ov/test/test_ovrtx_deformable_bindings.py index 529ab0a469b5..aba6736e0aa3 100644 --- a/source/isaaclab_ov/test/test_ovrtx_deformable_bindings.py +++ b/source/isaaclab_ov/test/test_ovrtx_deformable_bindings.py @@ -21,7 +21,10 @@ _REQUIRED_MODULES = ("isaaclab_ov", "ovrtx", "pxr") _MISSING_MODULES = [module for module in _REQUIRED_MODULES if importlib.util.find_spec(module) is None] -pytestmark = pytest.mark.skipif(bool(_MISSING_MODULES), reason=f"requires optional modules: {_MISSING_MODULES}") +pytestmark = [ + pytest.mark.skipif(bool(_MISSING_MODULES), reason=f"requires optional modules: {_MISSING_MODULES}"), + pytest.mark.kitless, +] if not _MISSING_MODULES: import isaaclab_ov.renderers.ovrtx_renderer as ovrtx_renderer_module diff --git a/source/isaaclab_ov/test/test_ovrtx_renderer_contract.py b/source/isaaclab_ov/test/test_ovrtx_renderer_contract.py index 9831b5931465..11b01b7ad1f5 100644 --- a/source/isaaclab_ov/test/test_ovrtx_renderer_contract.py +++ b/source/isaaclab_ov/test/test_ovrtx_renderer_contract.py @@ -34,6 +34,7 @@ bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}", ), + pytest.mark.kitless, ] if not _MISSING_MODULES: diff --git a/source/isaaclab_ov/test/test_ovrtx_renderer_kernels.py b/source/isaaclab_ov/test/test_ovrtx_renderer_kernels.py index 09d5dcb5e52c..0d5e0831c3fa 100644 --- a/source/isaaclab_ov/test/test_ovrtx_renderer_kernels.py +++ b/source/isaaclab_ov/test/test_ovrtx_renderer_kernels.py @@ -15,6 +15,8 @@ from isaaclab.renderers.segmentation_colors import pack_rgba, random_color_from_id +pytestmark = pytest.mark.kitless + DEVICE = "cuda:0" diff --git a/source/isaaclab_ov/test/test_ovrtx_renderer_rigid_object_rendering.py b/source/isaaclab_ov/test/test_ovrtx_renderer_rigid_object_rendering.py index 3235e0af19a9..79ade794310c 100644 --- a/source/isaaclab_ov/test/test_ovrtx_renderer_rigid_object_rendering.py +++ b/source/isaaclab_ov/test/test_ovrtx_renderer_rigid_object_rendering.py @@ -32,6 +32,7 @@ pytest.mark.rendering, pytest.mark.isaacsim_ci, pytest.mark.skipif(bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}"), + pytest.mark.kitless, ] if not _MISSING_MODULES: diff --git a/source/isaaclab_ov/test/test_ovrtx_shader_cache_redirect.py b/source/isaaclab_ov/test/test_ovrtx_shader_cache_redirect.py index dda1a37cba0a..2d9708753913 100644 --- a/source/isaaclab_ov/test/test_ovrtx_shader_cache_redirect.py +++ b/source/isaaclab_ov/test/test_ovrtx_shader_cache_redirect.py @@ -19,6 +19,8 @@ redirect_shader_cache, ) +pytestmark = pytest.mark.kitless + _CACHE_PATH = "/tmp/isaaclab-ovrtx-kitless-cache" # Only ever forwarded to the patched applier factory, so its contents never matter. diff --git a/source/isaaclab_ov/test/test_ovrtx_usd.py b/source/isaaclab_ov/test/test_ovrtx_usd.py index cd2012ae0e9e..ee2bab17e13c 100644 --- a/source/isaaclab_ov/test/test_ovrtx_usd.py +++ b/source/isaaclab_ov/test/test_ovrtx_usd.py @@ -20,6 +20,7 @@ bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}", ), + pytest.mark.kitless, ] if not _MISSING_MODULES: diff --git a/source/isaaclab_ov/test/test_ovrtx_visual_material_sync.py b/source/isaaclab_ov/test/test_ovrtx_visual_material_sync.py index 69d97d575fae..697cb8617d8e 100644 --- a/source/isaaclab_ov/test/test_ovrtx_visual_material_sync.py +++ b/source/isaaclab_ov/test/test_ovrtx_visual_material_sync.py @@ -16,9 +16,10 @@ _REQUIRED_MODULES = ("isaaclab_ov", "ovrtx") _MISSING_MODULES = [module for module in _REQUIRED_MODULES if importlib.util.find_spec(module) is None] -pytestmark = pytest.mark.skipif( - bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}" -) +pytestmark = [ + pytest.mark.skipif(bool(_MISSING_MODULES), reason=f"requires optional modules: {', '.join(_MISSING_MODULES)}"), + pytest.mark.kitless, +] if not _MISSING_MODULES: from isaaclab_ov.renderers.ovrtx_renderer import OVRTXRenderer diff --git a/source/isaaclab_ov/test/test_randomize_rigid_body_collider_offsets_mdp.py b/source/isaaclab_ov/test/test_randomize_rigid_body_collider_offsets_mdp.py index f704f0e1fe35..992f0577dab9 100644 --- a/source/isaaclab_ov/test/test_randomize_rigid_body_collider_offsets_mdp.py +++ b/source/isaaclab_ov/test/test_randomize_rigid_body_collider_offsets_mdp.py @@ -38,6 +38,8 @@ from isaaclab_assets import CARTPOLE_CFG # isort:skip # noqa: E402 +pytestmark = pytest.mark.kitless + wp.init() diff --git a/source/isaaclab_ov/test/test_randomize_rigid_body_material_mdp.py b/source/isaaclab_ov/test/test_randomize_rigid_body_material_mdp.py index baca4bd4b497..39dc7486467d 100644 --- a/source/isaaclab_ov/test/test_randomize_rigid_body_material_mdp.py +++ b/source/isaaclab_ov/test/test_randomize_rigid_body_material_mdp.py @@ -33,6 +33,8 @@ from isaaclab.test.utils import DeviceScope, test_devices # noqa: E402 from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR # noqa: E402 +pytestmark = pytest.mark.kitless + wp.init() diff --git a/source/isaaclab_tasks/changelog.d/jichuanh-ci-marker-selection.skip b/source/isaaclab_tasks/changelog.d/jichuanh-ci-marker-selection.skip new file mode 100644 index 000000000000..51bcbf53b393 --- /dev/null +++ b/source/isaaclab_tasks/changelog.d/jichuanh-ci-marker-selection.skip @@ -0,0 +1 @@ +Marked the test files that run without Kit as kitless so a marker run can select them. diff --git a/source/isaaclab_tasks/test/core/test_rendering_cartpole_kitless.py b/source/isaaclab_tasks/test/core/test_rendering_cartpole_kitless.py index ff2367b550db..bbf003a09255 100644 --- a/source/isaaclab_tasks/test/core/test_rendering_cartpole_kitless.py +++ b/source/isaaclab_tasks/test/core/test_rendering_cartpole_kitless.py @@ -19,7 +19,7 @@ rendering_test_cartpole, ) -pytestmark = pytest.mark.arm_ci +pytestmark = [pytest.mark.arm_ci, pytest.mark.kitless] _RENDERING_PARAMS = [ pytest.param(*param.values, False, marks=param.marks, id=param.id) diff --git a/source/isaaclab_tasks/test/core/test_rendering_franka_cable_kitless.py b/source/isaaclab_tasks/test/core/test_rendering_franka_cable_kitless.py index 4170237a2664..0c1d55af56bf 100644 --- a/source/isaaclab_tasks/test/core/test_rendering_franka_cable_kitless.py +++ b/source/isaaclab_tasks/test/core/test_rendering_franka_cable_kitless.py @@ -18,6 +18,8 @@ rendering_test_franka_cable, ) +pytestmark = pytest.mark.kitless + _RENDERING_PARAMS = group_rendering_params(make_kitless_rendering_params_franka()) _COMPARISON_SCORES: list[dict] = [] diff --git a/source/isaaclab_tasks/test/core/test_rendering_franka_cloth_kitless.py b/source/isaaclab_tasks/test/core/test_rendering_franka_cloth_kitless.py index 77ba8da567b5..0ed86fd86a53 100644 --- a/source/isaaclab_tasks/test/core/test_rendering_franka_cloth_kitless.py +++ b/source/isaaclab_tasks/test/core/test_rendering_franka_cloth_kitless.py @@ -18,6 +18,8 @@ rendering_test_franka_cloth, ) +pytestmark = pytest.mark.kitless + _RENDERING_PARAMS = group_rendering_params(make_kitless_rendering_params_franka()) _COMPARISON_SCORES: list[dict] = [] diff --git a/source/isaaclab_tasks/test/core/test_rendering_franka_soft_kitless.py b/source/isaaclab_tasks/test/core/test_rendering_franka_soft_kitless.py index e34b3657bcdb..fc6448f4ace9 100644 --- a/source/isaaclab_tasks/test/core/test_rendering_franka_soft_kitless.py +++ b/source/isaaclab_tasks/test/core/test_rendering_franka_soft_kitless.py @@ -18,6 +18,8 @@ rendering_test_franka_soft, ) +pytestmark = pytest.mark.kitless + _RENDERING_PARAMS = group_rendering_params(make_kitless_rendering_params_franka()) _COMPARISON_SCORES: list[dict] = [] diff --git a/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_hetero_kitless.py b/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_hetero_kitless.py index 92aa1df826be..a0936bffee79 100644 --- a/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_hetero_kitless.py +++ b/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_hetero_kitless.py @@ -18,6 +18,8 @@ rendering_test_lift_kuka, ) +pytestmark = pytest.mark.kitless + # OVPhysX heterogeneous rendering goldens are not available yet. _RENDERING_PARAMS = group_rendering_params( [param for param in make_kitless_rendering_params_lift() if param.values[1] != "ovphysx"] diff --git a/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_homo_kitless.py b/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_homo_kitless.py index bda9c02b288c..a4c95a8fb1a7 100644 --- a/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_homo_kitless.py +++ b/source/isaaclab_tasks/test/core/test_rendering_lift_kuka_homo_kitless.py @@ -18,7 +18,7 @@ rendering_test_lift_kuka, ) -pytestmark = pytest.mark.arm_ci +pytestmark = [pytest.mark.arm_ci, pytest.mark.kitless] _RENDERING_PARAMS = group_rendering_params(make_kitless_rendering_params_lift()) _COMPARISON_SCORES: list[dict] = [] diff --git a/source/isaaclab_tasks/test/core/test_rendering_shadow_hand_kitless.py b/source/isaaclab_tasks/test/core/test_rendering_shadow_hand_kitless.py index b17e9c41a0c3..dd98588d1a2c 100644 --- a/source/isaaclab_tasks/test/core/test_rendering_shadow_hand_kitless.py +++ b/source/isaaclab_tasks/test/core/test_rendering_shadow_hand_kitless.py @@ -19,7 +19,7 @@ rendering_test_shadow_hand, ) -pytestmark = pytest.mark.arm_ci +pytestmark = [pytest.mark.arm_ci, pytest.mark.kitless] _RENDERING_PARAMS = group_rendering_params( make_kitless_rendering_params(MINIMAL_KITLESS_PHYSICS_RENDERER_AOV_COMBINATIONS)