Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/source-en/rst_source/simulators/robocasa.rst
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ model weights are needed:

uv pip install pytest pytest-timeout
RPENT_RUN_ROBOCASA_INTEGRATION=1 \
pytest tests/integration_tests/robots/robocasa/test_target50_runtime_smoke.py -v
pytest tests/e2e_tests/robocasa/test_environment_smoke.py -v

Expect four passes: three tasks (``OpenDrawer``, ``NavigateKitchen`` and
``PickPlaceCounterToCabinet`` at seed 1) plus a mobile-camera check.
Expand Down
2 changes: 1 addition & 1 deletion docs/source-zh/rst_source/simulators/robocasa.rst
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,7 @@ Target50 包含 50 个厨房任务,共运行 340 次。以下使用 Codex、GP

uv pip install pytest pytest-timeout
RPENT_RUN_ROBOCASA_INTEGRATION=1 \
pytest tests/integration_tests/robots/robocasa/test_target50_runtime_smoke.py -v
pytest tests/e2e_tests/robocasa/test_environment_smoke.py -v

预期四项通过:三个任务(``OpenDrawer``、``NavigateKitchen``、``PickPlaceCounterToCabinet``,seed 1)和移动相机检查。

Expand Down
42 changes: 29 additions & 13 deletions tests/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Test suite structure

RPent keeps its fast, offline unit tests under `unit_tests` and its
checkpoint-backed embodied GPU tests and explicit real-robot diagnostics under
`e2e_tests`. Unit tests mirror the
production module they exercise. GPU E2E tests are grouped by robot stack and
exercise the real simulator and model runtime.
RPent keeps fast, offline unit tests under `unit_tests`. Real-simulator smoke
tests, model component and policy-chain tests, and explicit real-robot
diagnostics belong under `e2e_tests`. Unit tests mirror the production module
they exercise; GPU tests are grouped by robot stack. Environment smoke tests
can run without model checkpoints.

## Directory layout

Expand All @@ -14,7 +14,7 @@ tests/
├── e2e_tests/
│ ├── common.py # shared assertions and runtime lifecycle helpers
│ ├── run_gpu_suite.sh # clean-environment entry point for one robot stack
│ ├── dual_franka/ # opt-in real-robot VLA diagnostic console
│ ├── dual_franka/ # opt-in real-robot VLA diagnostic console
│ ├── libero/
│ ├── robocasa/
│ └── robotwin/
Expand Down Expand Up @@ -52,9 +52,10 @@ them when the first test for that module lands.
- Name files after the behavior they verify: `*_contracts.py` for stable API
contracts, `*_loopback.py` for real local transports, `*_lifecycle.py` for
resource ownership, and `*_smoke.py` for installation or startup checks.
- Put checkpoint-backed simulator and policy-chain coverage under the matching
`tests/e2e_tests/<robot>/` directory. Keep reusable validation and lifecycle
code in `tests/e2e_tests/common.py`.
- Put real-simulator smoke tests, model component tests and policy-chain tests
under `tests/e2e_tests/<robot>/`. Keep environment smoke tests independent of
fixtures that require model checkpoints. Reusable validation and lifecycle
code belongs in `tests/e2e_tests/common.py`.

Unit tests must run offline on an ordinary CPU machine. They may cross a real
local boundary, such as a loopback TCP connection or child process, but must
Expand All @@ -68,15 +69,25 @@ pytest tests/unit_tests -v

## RoboCasa environment smoke tests

The opt-in RoboCasa smoke suite verifies simulator installation and environment
interfaces without loading a planner or VLA checkpoint. Install the RoboCasa
extra and assets, then run:
RoboCasa separates simulator checks, model component checks and the full call chain:

| Tests | Coverage | Requirements |
| --- | --- | --- |
| `test_environment_smoke.py` | Three scenes, navigation RGB-D/world map and mobile-camera tracking | RoboCasa extra, assets and GPU/EGL; no model weights or planner credentials |
| `test_components.py` | Environment observations over RPC and RLDX inference | Model checkpoint, assets and GPU/EGL |
| `test_policy_chain.py` | CLI → tools → RLDX → simulator action → `finish` | Model checkpoint, assets and GPU/EGL; local scripted planner |

To check simulator installation and interfaces independently, install the
RoboCasa extra and assets, then run:

```bash
RPENT_RUN_ROBOCASA_INTEGRATION=1 \
pytest tests/integration_tests/robots/robocasa/test_target50_runtime_smoke.py -v
pytest tests/e2e_tests/robocasa/test_environment_smoke.py -v
```

This command needs neither `RLDX_MODEL_PATH` nor `RPENT_E2E_OUTPUT_DIR`. Without
`RPENT_RUN_ROBOCASA_INTEGRATION=1`, the four smoke cases are skipped.

The four cases cover `OpenDrawer`, `NavigateKitchen`, and
`PickPlaceCounterToCabinet` at seed 1, plus mobile-camera movement. Task checks
verify construction/reset, 12D actions, operation cameras, navigation RGB-D/world
Expand Down Expand Up @@ -104,6 +115,11 @@ bash tests/e2e_tests/run_gpu_suite.sh \
/path/to/new-venv-root
```

For RoboCasa, the runner enables the four environment smoke cases alongside
the two component tests and one policy-chain test. The existing
[GPU CI](../.github/workflows/embodied-gpu-e2e-run.yml) uses this same runner for
all seven checks. The scripted planner needs no external planner credentials.

## Dual-Franka VLA diagnostic console

Run the real-robot diagnostic explicitly from a source checkout after installing
Expand Down
1 change: 1 addition & 0 deletions tests/e2e_tests/run_gpu_suite.sh
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ case "$target" in
robocasa)
require_dir RLDX_MODEL_PATH
require_dir ROBOCASA_ASSETS_PATH
export RPENT_RUN_ROBOCASA_INTEGRATION=1
run_in_clean_env \
robocasa 3.10 robocasa tests/e2e_tests/robocasa "$output_dir/robocasa"
;;
Expand Down
Loading