Skip to content

Saumya feature lifecycle cross module integration #270

Draft
Saumya-R wants to merge 2 commits into
eclipse-score:mainfrom
qorix-group:saumya_feature_integration_lifecycle
Draft

Saumya feature lifecycle cross module integration #270
Saumya-R wants to merge 2 commits into
eclipse-score:mainfrom
qorix-group:saumya_feature_integration_lifecycle

Conversation

@Saumya-R

Copy link
Copy Markdown
Contributor

Cross-module integration tests verify that lifecycle management integrates correctly with other S-CORE modules in end-to-end scenarios:

  • Lifecycle ↔ Persistency — Data persistence across recovery actions
  • Lifecycle ↔ State Manager — Control interface and run-target management

Copilot AI 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.

Pull request overview

Adds lifecycle cross-module integration scaffolding across Rust/C++ scenario runners and Python FIT infrastructure, aiming to validate Launch Manager lifecycle behavior when integrated with other S-CORE modules (notably Persistency and State Manager) in daemon-supervised environments.

Changes:

  • Introduces new lifecycle scenario groups for both Rust and C++ FIT scenario executables, adding lifecycle/health-monitoring client deps.
  • Adds Python daemon fixture/helpers and lifecycle test utilities/configs to support running Launch Manager daemon during FITs.
  • Updates Bazel test targets and documentation to reflect daemon-focused lifecycle FIT suites.

Reviewed changes

Copilot reviewed 19 out of 20 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
pyproject.toml Switches pytest config section to tool.pytest.ini_options; adds markers for daemon/manual/slow.
feature_integration_tests/test_scenarios/rust/src/scenarios/mod.rs Registers lifecycle scenario group in Rust scenario root.
feature_integration_tests/test_scenarios/rust/src/scenarios/lifecycle/mod.rs Adds lifecycle scenario group definition (Rust).
feature_integration_tests/test_scenarios/rust/src/scenarios/lifecycle/launch_manager_support.rs Adds lifecycle-related Rust scenarios using lifecycle client + health monitoring APIs.
feature_integration_tests/test_scenarios/rust/BUILD Adds lifecycle health/client deps to Rust scenarios build.
feature_integration_tests/test_scenarios/cpp/src/scenarios/mod.cpp Registers lifecycle scenario group in C++ scenario root.
feature_integration_tests/test_scenarios/cpp/src/scenarios/lifecycle/launch_manager_support.h Declares lifecycle-related C++ scenario factory functions.
feature_integration_tests/test_scenarios/cpp/src/scenarios/lifecycle/launch_manager_support.cpp Implements lifecycle-related C++ scenarios (incl. lifecycle client usage).
feature_integration_tests/test_scenarios/cpp/BUILD Adds lifecycle client dep to C++ scenarios build.
feature_integration_tests/test_cases/tests/lifecycle/test_lifecycle_state_manager_if.py Adds daemon-based architectural interface test (Launch Manager ↔ State Manager).
feature_integration_tests/test_cases/tests/lifecycle/test_lifecycle_persistency_recovery.py Adds persistency recovery test scaffolding (currently no active tests).
feature_integration_tests/test_cases/lifecycle_scenario.py Adds helpers/base class for lifecycle FITs and Launch Manager config generation.
feature_integration_tests/test_cases/daemon_helpers.py Adds Launch Manager daemon fixture, runfiles/bazel binary resolution, and flatbuffer config handling.
feature_integration_tests/test_cases/conftest.py Adds --bazel-config and switches scenario build step to direct bazel build --config=....
feature_integration_tests/test_cases/configs/daemon_launch_manager_config.json Adds daemon Launch Manager JSON config template for config generation.
feature_integration_tests/test_cases/configs/BUILD Exports daemon Launch Manager config JSON as a Bazel data file.
feature_integration_tests/test_cases/BUILD Adds daemon_lifecycle_configs generation and new daemon-lifecycle FIT pytest targets/suites.
feature_integration_tests/README.md Documents lifecycle FIT modes and run instructions (needs target-name corrections per review comments).
feature_integration_tests/LIFECYCLE_TESTS_SUMMARY.md Adds lifecycle daemon cross-module test summary (needs status alignment per review comments).
feature_integration_tests/itf/test_lifecycle.py Present as an empty file in this PR.
Comments suppressed due to low confidence (1)

feature_integration_tests/test_cases/tests/lifecycle/test_lifecycle_persistency_recovery.py:87

  • test_lifecycle_persistency_recovery.py currently contains only helper code and no collected tests (the intended test class is removed/commented). This conflicts with the PR description and also means the suite isn't actually validating the Lifecycle ↔ Persistency recovery continuity scenario.
# Removed TestLifecyclePersistencyRecoveryContinuity class - requires supervised app recovery
# configuration not available in setcap mode


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread feature_integration_tests/LIFECYCLE_TESTS_SUMMARY.md
Comment thread feature_integration_tests/LIFECYCLE_TESTS_SUMMARY.md Outdated
Comment thread feature_integration_tests/README.md Outdated
Comment thread feature_integration_tests/README.md Outdated
Comment thread feature_integration_tests/test_cases/daemon_helpers.py
Comment thread feature_integration_tests/test_cases/daemon_helpers.py Outdated
@github-actions

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

@Saumya-R Saumya-R force-pushed the saumya_feature_integration_lifecycle branch from d93b7dd to 496662a Compare June 25, 2026 16:04
@Saumya-R Saumya-R requested a review from Copilot June 25, 2026 16:09

Copilot AI 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.

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated 8 comments.

Comment thread feature_integration_tests/test_cases/configs/BUILD Outdated
Comment on lines +14 to +22
Cross-module integration test: lifecycle recovery continuity with persistency state.

The test exercises an end-to-end flow where:
1. Persistency data is written using the FIT scenario executable.
2. A supervised lifecycle application is force-killed to trigger recovery.
3. Persistency data is written/read again in the same storage directory.

This verifies that lifecycle recovery activity does not break persistency
storage continuity for colocated workloads in the integration environment.
Comment on lines +204 to +209
# Step 4: Verify both snapshots are intact
all_snapshots = sorted(kvs_dir.glob("kvs_1_*.json"))
assert len(all_snapshots) > 0, "No snapshots found after recovery simulation"

# Verify the most recent snapshot
verify_kvs_snapshot_hash(kvs_dir, instance_id=1, snapshot_id=0)
Comment on lines +334 to +337
# Phase 2: Simulate crash by terminating first process
# (process already terminated after scenario execution)
# In a real supervised scenario, Launch Manager would detect crash and restart

Comment on lines +14 to +22
Architectural interface test: Launch Manager <-> State Manager
Control Interface (activate_target)

Verifies that external ECU logic (here represented by a direct IPC call into
the Launch Manager control interface) can:
- Query the current run-target status
- Request a run-target transition via activate_target
- Receive confirmation that the transition was performed

Comment on lines +35 to +45
import json
import os
import subprocess
import time
from pathlib import Path
from typing import Any

import pytest
from daemon_helpers import launch_manager_daemon
from lifecycle_scenario import add_supervised_component
from test_properties import add_test_properties
adding feature integration test cases for other requirements

removing hard fail conditions

updated documents

adding copilot reivew fixes

Fixed restart behavior on the same instance, Hardened shutdown race handling

updated the statement

 clearing self.process after shutdown

fixed pytest build environment issues

fixxing the python build issues

Adding test cases for cross module integration

cleaning the redundant test cases

 test_lifecycle_persistency_recovery.py scaffolding removed and implemented test

verifies continuity across supervised app crashes for persistency

Updated the docstring to accurately reflect the implementation , Removed the problematic chmod operations on user's home directory

Incorrect Run Targets in Docstring. Unused control_socket Variable

adding copyright fixes
@Saumya-R Saumya-R force-pushed the saumya_feature_integration_lifecycle branch from 496662a to bc547fd Compare June 25, 2026 16:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants