Skip to content

[Test] Consolidate environment smoke tests - #7089

Merged
kellyguo11 merged 7 commits into
isaac-sim:developfrom
StafaH:mh/consolidate-environment-tests
Aug 14, 2026
Merged

[Test] Consolidate environment smoke tests#7089
kellyguo11 merged 7 commits into
isaac-sim:developfrom
StafaH:mh/consolidate-environment-tests

Conversation

@StafaH

@StafaH StafaH commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Split core environment smoke coverage into explicit Isaac Sim PhysX, OV PhysX, and Newton MJWarp test files.
  • Select only tasks that explicitly provide the requested physics preset.
  • Consolidate contributor environment smoke coverage into one default-backend test with num_envs=2.
  • Remove duplicate contributor and stage-in-memory environment smoke suites.

Validation

  • uv run python -m compileall -q source/isaaclab_tasks/test/env_test_utils.py source/isaaclab_tasks/test/core source/isaaclab_tasks/test/contrib/test_contrib_environments.py
  • uv run isaaclab -f
  • Verified the three backend files distribute one per existing task-test shard.

@StafaH
StafaH requested a review from a team August 14, 2026 01:54
@github-actions github-actions Bot added isaac-lab Related to Isaac Lab team infrastructure labels Aug 14, 2026
@greptile-apps

greptile-apps Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR splits core environment smoke coverage by physics backend and consolidates contributed environments into one default-backend suite.

  • Adds explicit Isaac Sim PhysX, OV PhysX, and Newton MJWarp core suites.
  • Replaces specialized contributed-environment suites with one two-environment test.
  • Updates CI inclusion lists, sharding inputs, and per-file timeouts.
  • The consolidation drops required handling for Franka Pour and Factory environments.

Confidence Score: 3/5

The PR is not safe to merge until the consolidated contrib suite restores Franka Pour’s artifact guard and isolates Factory environments.

The replacement suite unconditionally runs a task known to require an external dataset and combines Factory tasks with other environments despite the removed code’s explicit requirement for separate execution.

Files Needing Attention: source/isaaclab_tasks/test/contrib/test_contrib_environments.py and source/isaaclab_tasks/test/env_test_utils.py

Important Files Changed

Filename Overview
source/isaaclab_tasks/test/contrib/test_contrib_environments.py Consolidates all single-agent contrib tasks but loses the Franka Pour artifact skip and Factory process isolation.
source/isaaclab_tasks/test/env_test_utils.py Simplifies environment selection around tier and physics presets while removing family-specific filtering and runtime guards.
source/isaaclab_tasks/test/core/test_environments_isaacsim_physx.py Restricts the renamed core smoke suite to tasks explicitly exposing the Isaac Sim PhysX preset.
source/isaaclab_tasks/test/core/test_environments_newton.py Selects and runs core tasks exposing the Newton MJWarp preset under the common CI marker.
source/isaaclab_tasks/test/core/test_environments_ovphysx.py Adds explicit OV PhysX smoke coverage for compatible core tasks.
.github/workflows/build.yaml Updates dedicated test inputs to the split backend files and removes deleted environment suites from Skillgen execution.
tools/test_settings.py Replaces timeout and special-suite entries with the consolidated and backend-specific filenames.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    Registry[Registered tasks] --> Tier{Task tier}
    Tier -->|core| Preset{Physics preset}
    Preset --> Isaac[Isaac Sim PhysX suite]
    Preset --> OV[OV PhysX suite]
    Preset --> Newton[Newton MJWarp suite]
    Tier -->|contrib, single-agent| Contrib[Consolidated contrib suite]
    Contrib --> Pour[Franka Pour without artifact guard]
    Contrib --> Factory[Factory tasks without process isolation]
Loading

Reviews (1): Last reviewed commit: "Consolidate environment smoke tests" | Re-trigger Greptile

Comment on lines +24 to +27
@pytest.mark.parametrize("task_name", setup_environment(multi_agent=False, tier="contrib"))
@pytest.mark.parametrize("num_envs, device", [(2, "cuda")])
def test_contrib_environments(task_name, num_envs, device):
_run_environments(task_name, device, num_envs)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Franka Pour artifact guard removed

When the external reset dataset is unavailable, this suite now selects IsaacContrib-Franka-Pour and passes it directly to _run_environments, causing environment initialization to fail instead of skipping the task as the removed suite did.

Comment on lines +24 to +27
@pytest.mark.parametrize("task_name", setup_environment(multi_agent=False, tier="contrib"))
@pytest.mark.parametrize("num_envs, device", [(2, "cuda")])
def test_contrib_environments(task_name, num_envs, device):
_run_environments(task_name, device, num_envs)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Factory process isolation removed

Factory and Forge tasks now run in the same Isaac Sim process as every other contributed environment, violating the documented requirement to collect them separately and causing the cross-environment failures that the dedicated Factory suite prevented.

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isaac Lab Review Bot

The preset-scoped core smoke-test split and associated CI filename updates are coherent, but the consolidated contributor suite removes required task-specific setup, isolation, and skip behavior from the deleted suites. Restore these safeguards before relying on the consolidated job.

  • Design and architecture: The tier plus physics_preset_name selection model cleanly replaces the previous family-specific filtering for core backend coverage. However, combining Factory/Forge, teleop, and all other contributed tasks into one simulator session conflicts with the deleted suites’ explicit process-isolation constraints and can reintroduce cross-task interference.
  • API: The test-internal setup_environment signature change is consistently reflected in the remaining callers, and the workflow and timeout registrations track the renamed test files. No public API compatibility issue is established by the accepted findings.
  • Implementation: The preset filter uses unresolved registry configurations and validates matching values as PhysicsCfg. The contributor runner still needs three safeguards preserved from the removed tests: import pinocchio before AppLauncher for tasks using Pink IK, isolate Factory/Forge and teleop task families into separate simulator sessions, and skip IsaacContrib-Franka-Pour when its external reset dataset is unavailable.

Minor fixes needed. Posted 3 actionable findings inline.

Automated review; human maintainers own approval decisions.


from isaaclab.app import AppLauncher

app_launcher = AppLauncher(headless=True, enable_cameras=True)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Warning · Implementation — Missing pinocchio pre-import before AppLauncher

The deleted teleop, pick-place/stack, SkillGen and AutoMate suites all imported pinocchio (guarded by sys.platform != "win32") before AppLauncher so the Isaac Lab build wins over Isaac Sim's bundled copy for the Pink IK controller. This file now collects exactly those contributed tasks but launches the app first and never performs that import. Restore the guarded pre-launch import.

def _contrib_environment_params() -> list:
"""Return each contributed environment with its supported test device."""
params = []
for task_param in setup_environment(multi_agent=False, tier="contrib"):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Warning · Design Architecture — Factory and teleop lose session isolation

The removed filters documented that Factory/Forge environments "cause tests to fail if run together with other envs" and that teleop environments "may interfere with other environment tests when run in the same process", which is why each had a dedicated file and simulator session. Collecting all contributed tasks into this single parametrized session reintroduces that interference; keep those families in separate modules or justify dropping the constraint.


@pytest.mark.parametrize("task_name, device", _contrib_environment_params())
def test_contrib_environments(task_name, device):
_run_environments(task_name, device, num_envs=2)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Warning · Implementation — Franka-Pour artifact skip was dropped

test_contrib_environments_smoke.py explicitly skipped IsaacContrib-Franka-Pour because it requires an external reset-dataset artifact, and no equivalent guard was moved into _run_environments. setup_environment(tier="contrib") still yields that task, so it is now collected and run unconditionally in the new job. Re-add the skip here or in the shared helper.

@StafaH StafaH changed the title Consolidate environment smoke tests [Test] Consolidate environment smoke tests Aug 14, 2026
StafaH added 3 commits August 13, 2026 19:10
…ironment-tests

# Conflicts:
#	source/isaaclab_tasks/test/benchmarking/test_environments_training.py
#	source/isaaclab_tasks/test/core/test_record_video.py
@kellyguo11
kellyguo11 merged commit a4c0d82 into isaac-sim:develop Aug 14, 2026
47 of 48 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants