From eebc1c79e5b50cdc6f22b8a7c543ddd80cbf5253 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Fri, 22 Aug 2025 04:13:52 -0600 Subject: [PATCH 01/11] Updates documentation --- CLAUDE.md | 1 + README.md | 35 ++++++++++++----------------------- lib/sc.ex | 6 ++++++ 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 9ba2393..9f1e5a6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -178,6 +178,7 @@ All parsed SCXML elements include precise source location information for valida ## Dependencies +- **`predicator`** (~> 2.0) - Safe condition (boolean predicate) evaluator - **`saxy`** (~> 1.6) - Fast, memory-efficient SAX XML parser with position tracking support ## Development Dependencies diff --git a/README.md b/README.md index aefbe83..1f048be 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,6 @@ An Elixir implementation of SCXML (State Chart XML) state charts with a focus on ### **✅ SCXML-Compliant Processing Engine** -**COMPLETED** - Full W3C SCXML specification compliance with proper domain terminology: - - **`Microstep/Macrostep Execution`** - Implements SCXML event processing model with microstep (single transition set execution) and macrostep (series of microsteps until stable) - **`Eventless Transitions`** - Transitions without event attributes (called NULL transitions in SCXML spec) that fire automatically upon state entry - **`Exit Set Computation`** - Implements W3C SCXML exit set calculation algorithm for determining which states to exit during transitions @@ -73,8 +71,6 @@ An Elixir implementation of SCXML (State Chart XML) state charts with a focus on ### **✅ Enhanced Parallel State Support** -**COMPLETED** - Fixed critical regression and enhanced parallel state semantics: - - **`Cross-Parallel Boundaries`** - Proper exit semantics when transitions leave parallel regions - **`Sibling State Management`** - Automatic exit of parallel siblings when transitions exit their shared parent - **`Self-Transitions`** - Transitions within parallel regions preserve unaffected parallel regions @@ -83,8 +79,6 @@ An Elixir implementation of SCXML (State Chart XML) state charts with a focus on ### **✅ Feature-Based Test Validation System** -**COMPLETED** - Improves test accuracy by validating that tests actually exercise intended SCXML functionality: - - **`SC.FeatureDetector`** - Analyzes SCXML documents to detect used features - **Feature validation** - Tests fail when they depend on unsupported features - **False positive prevention** - No more "passing" tests that silently ignore unsupported features @@ -92,8 +86,6 @@ An Elixir implementation of SCXML (State Chart XML) state charts with a focus on ### **✅ Modular Validator Architecture** -**COMPLETED** - Refactored monolithic validator into focused, maintainable modules: - - **`SC.Validator`** - Main orchestrator (from 386-line monolith) - **`SC.Validator.StateValidator`** - State ID validation - **`SC.Validator.TransitionValidator`** - Transition target validation @@ -103,8 +95,6 @@ An Elixir implementation of SCXML (State Chart XML) state charts with a focus on ### **✅ Initial State Elements** -**COMPLETED** - Full W3C-compliant support for `` elements: - - **Parser support** - `` elements with `` children - **Interpreter logic** - Proper initial state entry via initial elements - **Comprehensive validation** - Conflict detection, target validation, structure validation @@ -116,7 +106,6 @@ The next major areas for development focus on expanding SCXML feature support: ### **High Priority Features** -- **Conditional Transitions** - `cond` attribute evaluation for dynamic transitions - **Executable Content** - ``, ``, ``, `` + +**send_idlocation (1 test blocked)** +- Dynamic event targeting +- Low priority due to single test impact + +## Implementation Priority Recommendations + +### Phase 1: Basic Executable Content (Unlocks ~100+ tests) +1. **Parser changes**: Add support for `onentry`, `onexit`, `log`, `raise` elements +2. **Simple expression evaluator**: Handle string literals and basic expressions +3. **Action execution**: Integrate action execution into interpreter transitions +4. **Event queue**: Add internal event generation for `raise` elements + +**Estimated effort**: 2-3 weeks +**Tests unlocked**: ~120-140 tests (major improvement) + +### Phase 2: Data Model Foundation (Unlocks remaining failing tests) +1. **Data model implementation**: Variable storage and scoping +2. **Expression evaluation**: JavaScript/ECMAScript expression support +3. **Assignment actions**: Variable manipulation via `assign` elements +4. **Enhanced logging**: Expression-based log messages + +**Estimated effort**: 4-6 weeks (complex) +**Tests unlocked**: ~100+ additional tests + +### Phase 3: Advanced Features (Polish and edge cases) +1. **History states**: State history tracking and restoration +2. **Advanced transitions**: Internal and targetless transitions +3. **Send elements**: External event sending with delays +4. **Script elements**: Full script execution support + +**Estimated effort**: 3-4 weeks +**Tests unlocked**: ~20-30 remaining tests + +## Technical Architecture Changes Needed + +### Parser Enhancements +- Extend `SC.Parser.SCXML.Handler` to handle executable content elements +- Add data structures for actions in `SC.State` and `SC.Document` +- Parse expression attributes and script content + +### Interpreter Enhancements +- Add action execution during state transitions +- Implement data model context/scoping +- Add internal event queue for `raise` events +- Enhance transition logic for internal/targetless transitions + +### New Modules Needed +- `SC.DataModel` - Variable storage and management +- `SC.ExpressionEvaluator` - Expression parsing and evaluation +- `SC.ActionExecutor` - Execute onentry/onexit/transition actions +- `SC.EventQueue` - Internal event management + +## Risk Assessment + +**Low Risk**: onentry/onexit actions, log elements, raise elements, targetless transitions +**Medium Risk**: Data model, expression evaluation, history states +**High Risk**: Script elements, full ECMAScript compatibility, send elements with external targets + +## Conclusion + +Implementing **Phase 1 (Basic Executable Content)** would provide the highest ROI, unlocking approximately 25-30% more tests with moderate implementation complexity. The data model (Phase 2) is essential for full SCXML compliance but represents the highest complexity challenge. \ No newline at end of file diff --git a/documentation/implementation_roadmap.md b/documentation/implementation_roadmap.md new file mode 100644 index 0000000..2fc2e39 --- /dev/null +++ b/documentation/implementation_roadmap.md @@ -0,0 +1,210 @@ +# SCXML Implementation Roadmap + +## Executive Summary + +Analysis of 444 tests (294 passing, 150 failing) reveals that **13 missing SCXML features** are blocking test suite completion. Implementing **executable content support** would unlock ~80-100 additional tests with moderate complexity, while full **data model support** would unlock the remaining ~50-70 tests but requires significant architectural changes. + +## Feature Impact Analysis + +### Tier 1: High Impact, Medium Complexity (120+ tests) +1. **onentry_actions** (78 tests) - Execute actions when entering states +2. **log_elements** (72 tests) - Simple logging within executable content +3. **raise_elements** (48 tests) - Generate internal events +4. **onexit_actions** (21 tests) - Execute actions when exiting states + +### Tier 2: High Impact, High Complexity (110+ tests) +1. **datamodel + data_elements** (64 tests each) - Variable storage and management +2. **assign_elements** (48 tests) - Variable assignment actions + +### Tier 3: Medium Impact, Various Complexity (50+ tests) +1. **send_elements** (34 tests) - Event sending with delay support +2. **history_states** (12 tests) - State history preservation +3. **targetless_transitions** (10 tests) - Actions without state changes +4. **script_elements** (9 tests) - JavaScript execution +5. **internal_transitions** (5 tests) - Non-exit/entry transitions +6. **send_idlocation** (1 test) - Dynamic event targeting + +## Required Architecture Changes + +### Data Structure Extensions + +**SC.State** needs: +```elixir +defstruct [ + # ... existing fields ... + onentry_actions: [], # List of executable actions + onexit_actions: [] # List of executable actions +] +``` + +**SC.Transition** needs: +```elixir +defstruct [ + # ... existing fields ... + actions: [], # List of executable actions + type: :external # :external | :internal +] +``` + +**New SC.Action** struct: +```elixir +defstruct [ + type: nil, # :log | :raise | :assign | :send | :script + expr: nil, # Expression to evaluate + attributes: %{} # Element-specific attributes +] +``` + +### Parser Extensions + +**SC.Parser.SCXML.Handler** needs cases for: +- `onentry` → collect child actions, add to state +- `onexit` → collect child actions, add to state +- `log` → create log action with expr/label attributes +- `raise` → create raise action with event attribute +- `assign` → create assign action with location/expr +- `send` → create send action with event/delay/target + +### Interpreter Enhancements + +**SC.Interpreter** execution flow changes: + +```elixir +# During state transition execution: +1. Execute onexit_actions of exiting states +2. Execute transition actions +3. Execute onentry_actions of entering states +4. Process any raised internal events (microstep continuation) +``` + +### New Modules Required + +**SC.ActionExecutor**: +```elixir +def execute_actions(actions, context) do + Enum.reduce(actions, context, &execute_single_action/2) +end + +def execute_single_action(%SC.Action{type: :raise, attributes: %{"event" => event}}, context) do + # Add event to internal queue +end + +def execute_single_action(%SC.Action{type: :log, expr: expr}, context) do + # Evaluate expression and log result +end +``` + +**SC.ExpressionEvaluator** (Phase 2): +```elixir +def evaluate(expr, data_model) do + # Parse and evaluate JavaScript expressions + # Return {:ok, value} | {:error, reason} +end +``` + +**SC.DataModel** (Phase 2): +```elixir +def new(initial_data \\ %{}) do + # Create new data model context +end + +def get(data_model, variable) do + # Get variable value +end + +def set(data_model, variable, value) do + # Set variable value +end +``` + +## Implementation Phases + +### Phase 1: Basic Executable Content (2-3 weeks) +**Goal**: Unlock ~80-100 tests with raise/onentry/onexit/log support + +**Week 1**: Parser extensions +- Add action parsing to SCXML handler +- Extend state/transition data structures +- Add basic action collection during parsing + +**Week 2**: Interpreter integration +- Implement ActionExecutor with raise/log support +- Integrate action execution into state transitions +- Add internal event queue for raised events + +**Week 3**: Testing and refinement +- Test against SCION action tests +- Handle edge cases and error conditions +- Documentation and cleanup + +**Expected outcome**: ~66% → ~85% test pass rate + +### Phase 2: Data Model (4-6 weeks) +**Goal**: Unlock remaining ~50-70 tests with full variable support + +**Weeks 1-2**: Expression evaluation foundation +- Research JavaScript expression parsing options +- Implement basic expression evaluator +- Support variable references and simple operations + +**Weeks 3-4**: Data model integration +- Implement SC.DataModel for variable storage +- Add assign action support +- Integrate with expression evaluator + +**Weeks 5-6**: Advanced features +- Enhanced expression support (objects, arrays, functions) +- Integration testing with W3C mandatory tests +- Performance optimization + +**Expected outcome**: ~85% → ~95% test pass rate + +### Phase 3: Advanced Features (2-3 weeks) +**Goal**: Polish and edge cases for remaining tests + +- History state implementation +- Internal/targetless transition support +- Send element with delay support +- Script element basic support + +**Expected outcome**: ~95% → ~98%+ test pass rate + +## Risk Assessment & Mitigation + +### Technical Risks + +**High Risk**: JavaScript expression evaluation +- *Mitigation*: Start with subset of expressions, expand gradually +- *Alternative*: Use Elixir-native expression syntax initially + +**Medium Risk**: Action execution ordering and event processing +- *Mitigation*: Follow W3C specification exactly, extensive testing +- *Reference*: SCION implementation patterns + +**Low Risk**: Parser extensions, data structure changes +- *Mitigation*: Incremental changes with test coverage + +### Integration Risks + +**Data model performance**: Variable lookups in tight loops +- *Mitigation*: Optimize after correctness, consider ETS for large datasets + +**Memory usage**: Storing parsed actions and expressions +- *Mitigation*: Profile memory usage, optimize data structures + +## Success Metrics + +- **Phase 1**: 85%+ test pass rate (from current 66%) +- **Phase 2**: 95%+ test pass rate +- **Phase 3**: 98%+ test pass rate +- **Code quality**: Maintain current Credo/Dialyzer standards +- **Performance**: No significant regression in transition speed + +## Recommended Next Steps + +1. **Immediate**: Begin Phase 1 implementation with `raise` element support +2. **Week 1**: Implement basic onentry action execution +3. **Week 2**: Add log element support for debugging +4. **Month 2**: Start Phase 2 planning and expression evaluation research + +This roadmap provides a clear path to dramatically improve SCXML compliance while managing implementation complexity through incremental phases. \ No newline at end of file diff --git a/documentation/test_analysis_summary.md b/documentation/test_analysis_summary.md new file mode 100644 index 0000000..6aa22c1 --- /dev/null +++ b/documentation/test_analysis_summary.md @@ -0,0 +1,114 @@ +# SCXML Test Suite Analysis Summary + +## Current Status +- **Total Tests**: 444 (SCION + W3C test suites) +- **Passing**: 294 (66.2%) +- **Failing**: 150 (33.8%) +- **Missing Features**: 13 unique SCXML features + +## Feature Analysis Results + +### Top Missing Features by Test Impact +1. **onentry_actions**: 78 tests blocked - Actions executed when entering states +2. **log_elements**: 72 tests blocked - Logging within executable content +3. **data_elements**: 64 tests blocked - Variable declarations in datamodel +4. **datamodel**: 64 tests blocked - Data model container element +5. **assign_elements**: 48 tests blocked - Variable assignments +6. **raise_elements**: 48 tests blocked - Internal event generation +7. **send_elements**: 34 tests blocked - Event sending (internal/external) +8. **onexit_actions**: 21 tests blocked - Actions executed when exiting states +9. **history_states**: 12 tests blocked - State history preservation +10. **targetless_transitions**: 10 tests blocked - Action-only transitions + +### Core Insights + +**Executable Content is Critical**: The top failing feature categories (onentry/onexit actions, logging, raise events) represent the foundation of SCXML's executable content model. Without these, most real-world statecharts cannot function. + +**Data Model is Complex**: Data model features (datamodel, data_elements, assign_elements) require implementing JavaScript expression evaluation, which is architecturally significant. + +**Parser Limitations**: Current parser only handles structural elements (states, transitions) but skips all executable content elements, treating them as "unknown." + +### Implementation Priority + +**Phase 1 (High ROI)**: Basic executable content support +- Target: onentry_actions, log_elements, raise_elements, onexit_actions +- Expected unlock: ~120+ additional tests (30% improvement) +- Complexity: Medium (2-3 weeks) + +**Phase 2 (Full Compliance)**: Data model implementation +- Target: datamodel, data_elements, assign_elements +- Expected unlock: ~100+ additional tests (25% improvement) +- Complexity: High (4-6 weeks) + +**Phase 3 (Polish)**: Advanced features +- Target: history_states, send_elements, internal_transitions +- Expected unlock: ~30+ remaining tests (7% improvement) +- Complexity: Medium (2-3 weeks) + +## Technical Requirements + +### Parser Extensions Needed +Current parser must be extended to handle: +```xml + + + + + + + + +``` + +### Interpreter Enhancements Needed +Current interpreter must execute actions during transitions: +1. Execute onexit actions of exiting states +2. Execute transition actions +3. Execute onentry actions of entering states +4. Process raised internal events in microsteps + +### Architecture Changes Required +- **New data structures**: Action lists in states/transitions +- **New modules**: ActionExecutor, ExpressionEvaluator, DataModel +- **Enhanced execution**: Action integration in transition processing + +## Example Test Case Analysis + +**Simple Raise Event Test** (`send1_test.exs`): +```xml + + + + + + + + +``` + +**Expected Behavior**: +1. Send event "t" → transition a→b +2. Execute raise action → generate internal "s" event +3. Process "s" event → transition b→c +4. Final state: "c" + +**Current Result**: Test blocked due to unsupported `raise_elements` + +## Recommendations + +1. **Start with Phase 1**: Implement basic executable content support to unlock 30% more tests with moderate effort + +2. **Focus on `raise` elements first**: Many failing tests depend on internal event generation, which is conceptually simple but architecturally important + +3. **Use SCION tests for validation**: SCION tests provide excellent isolated examples of each feature in action + +4. **Delay data model complexity**: While data model unlocks many tests, it requires significant architectural investment. Basic executable content provides better ROI. + +5. **Maintain test-driven approach**: The comprehensive test suite provides excellent validation for each implementation step + +## Files Created +- `/Users/johnnyt/repos/github/sc/feature_complexity_analysis.md` - Detailed feature analysis +- `/Users/johnnyt/repos/github/sc/implementation_roadmap.md` - Technical implementation plan +- `/Users/johnnyt/repos/github/sc/test_analysis_summary.md` - This summary document + +This analysis provides a clear roadmap for improving SCXML compliance from 66% to 95%+ test coverage through systematic implementation of missing features. \ No newline at end of file From 51921758f9593e1c55802427565098bea3c3d46d Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:06:30 -0600 Subject: [PATCH 04/11] Adds required_features to SCION and SCXML tests --- test/scion_tests/actionSend/send1_test.exs | 1 + test/scion_tests/actionSend/send2_test.exs | 1 + test/scion_tests/actionSend/send3_test.exs | 1 + test/scion_tests/actionSend/send4_test.exs | 1 + test/scion_tests/actionSend/send4b_test.exs | 1 + test/scion_tests/actionSend/send7_test.exs | 1 + test/scion_tests/actionSend/send7b_test.exs | 1 + test/scion_tests/actionSend/send8_test.exs | 1 + test/scion_tests/actionSend/send8b_test.exs | 1 + test/scion_tests/actionSend/send9_test.exs | 1 + test/scion_tests/assign/assign_invalid_test.exs | 1 + test/scion_tests/assign/assign_obj_literal_test.exs | 1 + test/scion_tests/assign_current_small_step/test0_test.exs | 1 + test/scion_tests/assign_current_small_step/test1_test.exs | 1 + test/scion_tests/assign_current_small_step/test2_test.exs | 1 + test/scion_tests/assign_current_small_step/test3_test.exs | 1 + test/scion_tests/assign_current_small_step/test4_test.exs | 1 + test/scion_tests/atom3_basic_tests/m0_test.exs | 1 + test/scion_tests/atom3_basic_tests/m1_test.exs | 1 + test/scion_tests/atom3_basic_tests/m2_test.exs | 1 + test/scion_tests/atom3_basic_tests/m3_test.exs | 1 + test/scion_tests/basic/basic0_test.exs | 1 + test/scion_tests/basic/basic1_test.exs | 1 + test/scion_tests/basic/basic2_test.exs | 1 + test/scion_tests/cond_js/TestConditionalTransition_test.exs | 1 + test/scion_tests/cond_js/test0_test.exs | 1 + test/scion_tests/cond_js/test1_test.exs | 1 + test/scion_tests/cond_js/test2_test.exs | 1 + test/scion_tests/data/data_invalid_test.exs | 1 + test/scion_tests/data/data_obj_literal_test.exs | 1 + test/scion_tests/default_initial_state/initial1_test.exs | 1 + test/scion_tests/default_initial_state/initial2_test.exs | 1 + test/scion_tests/delayedSend/send1_test.exs | 1 + test/scion_tests/delayedSend/send2_test.exs | 1 + test/scion_tests/delayedSend/send3_test.exs | 1 + test/scion_tests/documentOrder/documentOrder0_test.exs | 1 + test/scion_tests/error/error_test.exs | 1 + test/scion_tests/foreach/test1_test.exs | 1 + test/scion_tests/hierarchy/hier0_test.exs | 1 + test/scion_tests/hierarchy/hier1_test.exs | 1 + test/scion_tests/hierarchy/hier2_test.exs | 1 + test/scion_tests/hierarchy_documentOrder/test0_test.exs | 1 + test/scion_tests/hierarchy_documentOrder/test1_test.exs | 1 + test/scion_tests/history/history0_test.exs | 1 + test/scion_tests/history/history1_test.exs | 1 + test/scion_tests/history/history2_test.exs | 1 + test/scion_tests/history/history3_test.exs | 1 + test/scion_tests/history/history4_test.exs | 1 + test/scion_tests/history/history4b_test.exs | 1 + test/scion_tests/history/history5_test.exs | 1 + test/scion_tests/history/history6_test.exs | 1 + test/scion_tests/if_else/test0_test.exs | 1 + test/scion_tests/in/TestInPredicate_test.exs | 1 + test/scion_tests/internal_transitions/test0_test.exs | 1 + test/scion_tests/internal_transitions/test1_test.exs | 1 + test/scion_tests/misc/deep_initial_test.exs | 1 + test/scion_tests/more_parallel/test0_test.exs | 1 + test/scion_tests/more_parallel/test10_test.exs | 1 + test/scion_tests/more_parallel/test10b_test.exs | 1 + test/scion_tests/more_parallel/test1_test.exs | 1 + test/scion_tests/more_parallel/test2_test.exs | 1 + test/scion_tests/more_parallel/test2b_test.exs | 1 + test/scion_tests/more_parallel/test3_test.exs | 1 + test/scion_tests/more_parallel/test3b_test.exs | 1 + test/scion_tests/more_parallel/test4_test.exs | 1 + test/scion_tests/more_parallel/test5_test.exs | 1 + test/scion_tests/more_parallel/test6_test.exs | 1 + test/scion_tests/more_parallel/test6b_test.exs | 1 + test/scion_tests/more_parallel/test7_test.exs | 1 + test/scion_tests/more_parallel/test8_test.exs | 1 + test/scion_tests/more_parallel/test9_test.exs | 1 + test/scion_tests/multiple_events_per_transition/test1_test.exs | 1 + test/scion_tests/parallel/test0_test.exs | 1 + test/scion_tests/parallel/test1_test.exs | 1 + test/scion_tests/parallel/test2_test.exs | 1 + test/scion_tests/parallel/test3_test.exs | 1 + test/scion_tests/parallel_interrupt/test0_test.exs | 1 + test/scion_tests/parallel_interrupt/test10_test.exs | 1 + test/scion_tests/parallel_interrupt/test11_test.exs | 1 + test/scion_tests/parallel_interrupt/test12_test.exs | 1 + test/scion_tests/parallel_interrupt/test13_test.exs | 1 + test/scion_tests/parallel_interrupt/test14_test.exs | 1 + test/scion_tests/parallel_interrupt/test15_test.exs | 1 + test/scion_tests/parallel_interrupt/test16_test.exs | 1 + test/scion_tests/parallel_interrupt/test17_test.exs | 1 + test/scion_tests/parallel_interrupt/test18_test.exs | 1 + test/scion_tests/parallel_interrupt/test19_test.exs | 1 + test/scion_tests/parallel_interrupt/test1_test.exs | 1 + test/scion_tests/parallel_interrupt/test20_test.exs | 1 + test/scion_tests/parallel_interrupt/test21_test.exs | 1 + test/scion_tests/parallel_interrupt/test21b_test.exs | 1 + test/scion_tests/parallel_interrupt/test21c_test.exs | 1 + test/scion_tests/parallel_interrupt/test22_test.exs | 1 + test/scion_tests/parallel_interrupt/test23_test.exs | 1 + test/scion_tests/parallel_interrupt/test24_test.exs | 1 + test/scion_tests/parallel_interrupt/test25_test.exs | 1 + test/scion_tests/parallel_interrupt/test27_test.exs | 1 + test/scion_tests/parallel_interrupt/test28_test.exs | 1 + test/scion_tests/parallel_interrupt/test29_test.exs | 1 + test/scion_tests/parallel_interrupt/test2_test.exs | 1 + test/scion_tests/parallel_interrupt/test30_test.exs | 1 + test/scion_tests/parallel_interrupt/test31_test.exs | 1 + test/scion_tests/parallel_interrupt/test3_test.exs | 1 + test/scion_tests/parallel_interrupt/test4_test.exs | 1 + test/scion_tests/parallel_interrupt/test5_test.exs | 1 + test/scion_tests/parallel_interrupt/test6_test.exs | 1 + test/scion_tests/parallel_interrupt/test7_test.exs | 1 + test/scion_tests/parallel_interrupt/test7b_test.exs | 1 + test/scion_tests/parallel_interrupt/test8_test.exs | 1 + test/scion_tests/parallel_interrupt/test9_test.exs | 1 + test/scion_tests/script/test0_test.exs | 1 + test/scion_tests/script/test1_test.exs | 1 + test/scion_tests/script/test2_test.exs | 1 + test/scion_tests/script_src/test0_test.exs | 1 + test/scion_tests/script_src/test1_test.exs | 1 + test/scion_tests/script_src/test2_test.exs | 1 + test/scion_tests/script_src/test3_test.exs | 1 + test/scion_tests/scxml_prefix_event_name_matching/star0_test.exs | 1 + test/scion_tests/scxml_prefix_event_name_matching/test0_test.exs | 1 + test/scion_tests/scxml_prefix_event_name_matching/test1_test.exs | 1 + test/scion_tests/send_data/send1_test.exs | 1 + test/scion_tests/send_idlocation/test0_test.exs | 1 + test/scion_tests/send_internal/test0_test.exs | 1 + test/scion_tests/targetless_transition/test0_test.exs | 1 + test/scion_tests/targetless_transition/test1_test.exs | 1 + test/scion_tests/targetless_transition/test2_test.exs | 1 + test/scion_tests/targetless_transition/test3_test.exs | 1 + .../mandatory/EvaluationofExecutableContent/test158_test.exs | 1 + .../mandatory/EvaluationofExecutableContent/test159_test.exs | 1 + .../scxml_tests/mandatory/SelectingTransitions/test403a_test.exs | 1 + .../scxml_tests/mandatory/SelectingTransitions/test403b_test.exs | 1 + .../scxml_tests/mandatory/SelectingTransitions/test403c_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs | 1 + test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs | 1 + test/scxml_tests/mandatory/data/test276_test.exs | 1 + test/scxml_tests/mandatory/data/test276sub1_test.exs | 1 + test/scxml_tests/mandatory/data/test277_test.exs | 1 + test/scxml_tests/mandatory/data/test279_test.exs | 1 + test/scxml_tests/mandatory/data/test280_test.exs | 1 + test/scxml_tests/mandatory/data/test550_test.exs | 1 + test/scxml_tests/mandatory/data/test551_test.exs | 1 + test/scxml_tests/mandatory/events/test396_test.exs | 1 + test/scxml_tests/mandatory/events/test399_test.exs | 1 + test/scxml_tests/mandatory/events/test401_test.exs | 1 + test/scxml_tests/mandatory/events/test402_test.exs | 1 + test/scxml_tests/mandatory/final/test372_test.exs | 1 + test/scxml_tests/mandatory/final/test570_test.exs | 1 + test/scxml_tests/mandatory/foreach/test150_test.exs | 1 + test/scxml_tests/mandatory/foreach/test151_test.exs | 1 + test/scxml_tests/mandatory/foreach/test152_test.exs | 1 + test/scxml_tests/mandatory/foreach/test153_test.exs | 1 + test/scxml_tests/mandatory/foreach/test155_test.exs | 1 + test/scxml_tests/mandatory/foreach/test156_test.exs | 1 + test/scxml_tests/mandatory/foreach/test525_test.exs | 1 + test/scxml_tests/mandatory/history/test387_test.exs | 1 + test/scxml_tests/mandatory/history/test388_test.exs | 1 + test/scxml_tests/mandatory/history/test579_test.exs | 1 + test/scxml_tests/mandatory/history/test580_test.exs | 1 + test/scxml_tests/mandatory/if/test147_test.exs | 1 + test/scxml_tests/mandatory/if/test148_test.exs | 1 + test/scxml_tests/mandatory/if/test149_test.exs | 1 + test/scxml_tests/mandatory/onentry/test375_test.exs | 1 + test/scxml_tests/mandatory/onentry/test376_test.exs | 1 + test/scxml_tests/mandatory/onexit/test377_test.exs | 1 + test/scxml_tests/mandatory/onexit/test378_test.exs | 1 + test/scxml_tests/mandatory/raise/test144_test.exs | 1 + test/scxml_tests/mandatory/scxml/test355_test.exs | 1 + test/scxml_tests/mandatory/scxml/test576_test.exs | 1 + test/scxml_tests/mandatory/state/test364_test.exs | 1 + 186 files changed, 186 insertions(+) diff --git a/test/scion_tests/actionSend/send1_test.exs b/test/scion_tests/actionSend/send1_test.exs index d4b54f4..4df08f3 100644 --- a/test/scion_tests/actionSend/send1_test.exs +++ b/test/scion_tests/actionSend/send1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :raise_elements] @tag spec: "action_send" test "send1" do xml = """ diff --git a/test/scion_tests/actionSend/send2_test.exs b/test/scion_tests/actionSend/send2_test.exs index 005535c..f0f503c 100644 --- a/test/scion_tests/actionSend/send2_test.exs +++ b/test/scion_tests/actionSend/send2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :onexit_actions, :raise_elements] @tag spec: "action_send" test "send2" do xml = """ diff --git a/test/scion_tests/actionSend/send3_test.exs b/test/scion_tests/actionSend/send3_test.exs index 476aa7c..5c29e46 100644 --- a/test/scion_tests/actionSend/send3_test.exs +++ b/test/scion_tests/actionSend/send3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send3Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :onentry_actions, :raise_elements] @tag spec: "action_send" test "send3" do xml = """ diff --git a/test/scion_tests/actionSend/send4_test.exs b/test/scion_tests/actionSend/send4_test.exs index 7ecb98c..55307e3 100644 --- a/test/scion_tests/actionSend/send4_test.exs +++ b/test/scion_tests/actionSend/send4_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send4Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :onentry_actions, :raise_elements] @tag spec: "action_send" test "send4" do xml = """ diff --git a/test/scion_tests/actionSend/send4b_test.exs b/test/scion_tests/actionSend/send4b_test.exs index 3d15a8c..5be5be0 100644 --- a/test/scion_tests/actionSend/send4b_test.exs +++ b/test/scion_tests/actionSend/send4b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send4bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :onentry_actions, :raise_elements] @tag spec: "action_send" test "send4b" do xml = """ diff --git a/test/scion_tests/actionSend/send7_test.exs b/test/scion_tests/actionSend/send7_test.exs index 35da3b7..2942d14 100644 --- a/test/scion_tests/actionSend/send7_test.exs +++ b/test/scion_tests/actionSend/send7_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send7Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :raise_elements] @tag spec: "action_send" test "send7" do xml = """ diff --git a/test/scion_tests/actionSend/send7b_test.exs b/test/scion_tests/actionSend/send7b_test.exs index 0ebae9e..4978b4e 100644 --- a/test/scion_tests/actionSend/send7b_test.exs +++ b/test/scion_tests/actionSend/send7b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send7bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :raise_elements] @tag spec: "action_send" test "send7b" do xml = """ diff --git a/test/scion_tests/actionSend/send8_test.exs b/test/scion_tests/actionSend/send8_test.exs index fe24250..8780867 100644 --- a/test/scion_tests/actionSend/send8_test.exs +++ b/test/scion_tests/actionSend/send8_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send8Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :raise_elements] @tag spec: "action_send" test "send8" do xml = """ diff --git a/test/scion_tests/actionSend/send8b_test.exs b/test/scion_tests/actionSend/send8b_test.exs index 2aee7c0..6ce74ad 100644 --- a/test/scion_tests/actionSend/send8b_test.exs +++ b/test/scion_tests/actionSend/send8b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send8bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :raise_elements] @tag spec: "action_send" test "send8b" do xml = """ diff --git a/test/scion_tests/actionSend/send9_test.exs b/test/scion_tests/actionSend/send9_test.exs index 6dc9f66..eb5f187 100644 --- a/test/scion_tests/actionSend/send9_test.exs +++ b/test/scion_tests/actionSend/send9_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ActionSend.Send9Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :initial_elements, :raise_elements] @tag spec: "action_send" test "send9" do xml = """ diff --git a/test/scion_tests/assign/assign_invalid_test.exs b/test/scion_tests/assign/assign_invalid_test.exs index 2927e44..3362b3e 100644 --- a/test/scion_tests/assign/assign_invalid_test.exs +++ b/test/scion_tests/assign/assign_invalid_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Assign.AssignInvalidTest do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag spec: "assign" test "assign_invalid" do xml = """ diff --git a/test/scion_tests/assign/assign_obj_literal_test.exs b/test/scion_tests/assign/assign_obj_literal_test.exs index 0b603fe..17fba98 100644 --- a/test/scion_tests/assign/assign_obj_literal_test.exs +++ b/test/scion_tests/assign/assign_obj_literal_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Assign.AssignObjLiteralTest do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag spec: "assign" test "assign_obj_literal" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test0_test.exs b/test/scion_tests/assign_current_small_step/test0_test.exs index 19d3c03..78f044f 100644 --- a/test/scion_tests/assign_current_small_step/test0_test.exs +++ b/test/scion_tests/assign_current_small_step/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test0Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :onentry_actions, :script_elements] @tag spec: "assign_current_small_step" test "test0" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test1_test.exs b/test/scion_tests/assign_current_small_step/test1_test.exs index 28381a9..76961d4 100644 --- a/test/scion_tests/assign_current_small_step/test1_test.exs +++ b/test/scion_tests/assign_current_small_step/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test1Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions] @tag spec: "assign_current_small_step" test "test1" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test2_test.exs b/test/scion_tests/assign_current_small_step/test2_test.exs index 39cbede..5473cc6 100644 --- a/test/scion_tests/assign_current_small_step/test2_test.exs +++ b/test/scion_tests/assign_current_small_step/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test2Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions] @tag spec: "assign_current_small_step" test "test2" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test3_test.exs b/test/scion_tests/assign_current_small_step/test3_test.exs index e28ed7f..61a9552 100644 --- a/test/scion_tests/assign_current_small_step/test3_test.exs +++ b/test/scion_tests/assign_current_small_step/test3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test3Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :parallel_states] @tag spec: "assign_current_small_step" test "test3" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test4_test.exs b/test/scion_tests/assign_current_small_step/test4_test.exs index 7ced1ef..cef69d2 100644 --- a/test/scion_tests/assign_current_small_step/test4_test.exs +++ b/test/scion_tests/assign_current_small_step/test4_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test4Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :onentry_actions] @tag spec: "assign_current_small_step" test "test4" do xml = """ diff --git a/test/scion_tests/atom3_basic_tests/m0_test.exs b/test/scion_tests/atom3_basic_tests/m0_test.exs index c1617f9..f9a1279 100644 --- a/test/scion_tests/atom3_basic_tests/m0_test.exs +++ b/test/scion_tests/atom3_basic_tests/m0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Atom3BasicTests.M0Test do use SC.Case @tag :scion + @tag required_features: [] @tag spec: "atom3_basic_tests" test "m0" do xml = """ diff --git a/test/scion_tests/atom3_basic_tests/m1_test.exs b/test/scion_tests/atom3_basic_tests/m1_test.exs index 89b9d97..acd79b7 100644 --- a/test/scion_tests/atom3_basic_tests/m1_test.exs +++ b/test/scion_tests/atom3_basic_tests/m1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Atom3BasicTests.M1Test do use SC.Case @tag :scion + @tag required_features: [] @tag spec: "atom3_basic_tests" test "m1" do xml = """ diff --git a/test/scion_tests/atom3_basic_tests/m2_test.exs b/test/scion_tests/atom3_basic_tests/m2_test.exs index 66cad05..1431b9e 100644 --- a/test/scion_tests/atom3_basic_tests/m2_test.exs +++ b/test/scion_tests/atom3_basic_tests/m2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Atom3BasicTests.M2Test do use SC.Case @tag :scion + @tag required_features: [] @tag spec: "atom3_basic_tests" test "m2" do xml = """ diff --git a/test/scion_tests/atom3_basic_tests/m3_test.exs b/test/scion_tests/atom3_basic_tests/m3_test.exs index cc257da..36f772f 100644 --- a/test/scion_tests/atom3_basic_tests/m3_test.exs +++ b/test/scion_tests/atom3_basic_tests/m3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Atom3BasicTests.M3Test do use SC.Case @tag :scion + @tag required_features: [] @tag spec: "atom3_basic_tests" test "m3" do xml = """ diff --git a/test/scion_tests/basic/basic0_test.exs b/test/scion_tests/basic/basic0_test.exs index 429904e..475e072 100644 --- a/test/scion_tests/basic/basic0_test.exs +++ b/test/scion_tests/basic/basic0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Basic.Basic0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states] @tag spec: "basic" test "basic0" do xml = """ diff --git a/test/scion_tests/basic/basic1_test.exs b/test/scion_tests/basic/basic1_test.exs index 6d24c4b..66d89e2 100644 --- a/test/scion_tests/basic/basic1_test.exs +++ b/test/scion_tests/basic/basic1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Basic.Basic1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "basic" test "basic1" do xml = """ diff --git a/test/scion_tests/basic/basic2_test.exs b/test/scion_tests/basic/basic2_test.exs index 99ee9c5..ecb6c4e 100644 --- a/test/scion_tests/basic/basic2_test.exs +++ b/test/scion_tests/basic/basic2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Basic.Basic2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "basic" test "basic2" do xml = """ diff --git a/test/scion_tests/cond_js/TestConditionalTransition_test.exs b/test/scion_tests/cond_js/TestConditionalTransition_test.exs index 81cae8b..d7a248b 100644 --- a/test/scion_tests/cond_js/TestConditionalTransition_test.exs +++ b/test/scion_tests/cond_js/TestConditionalTransition_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.CondJs.TestConditionalTransitionTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :event_transitions, :initial_elements] @tag spec: "cond_js" test "TestConditionalTransition" do xml = """ diff --git a/test/scion_tests/cond_js/test0_test.exs b/test/scion_tests/cond_js/test0_test.exs index 65fd3f9..6904872 100644 --- a/test/scion_tests/cond_js/test0_test.exs +++ b/test/scion_tests/cond_js/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.CondJs.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :event_transitions] @tag spec: "cond_js" test "test0" do xml = """ diff --git a/test/scion_tests/cond_js/test1_test.exs b/test/scion_tests/cond_js/test1_test.exs index 1c25c4a..832e25e 100644 --- a/test/scion_tests/cond_js/test1_test.exs +++ b/test/scion_tests/cond_js/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.CondJs.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :event_transitions] @tag spec: "cond_js" test "test1" do xml = """ diff --git a/test/scion_tests/cond_js/test2_test.exs b/test/scion_tests/cond_js/test2_test.exs index 8a522d9..7510834 100644 --- a/test/scion_tests/cond_js/test2_test.exs +++ b/test/scion_tests/cond_js/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.CondJs.Test2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :event_transitions] @tag spec: "cond_js" test "test2" do xml = """ diff --git a/test/scion_tests/data/data_invalid_test.exs b/test/scion_tests/data/data_invalid_test.exs index 5403c2e..00a6381 100644 --- a/test/scion_tests/data/data_invalid_test.exs +++ b/test/scion_tests/data/data_invalid_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Data.DataInvalidTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag spec: "data" test "data_invalid" do xml = """ diff --git a/test/scion_tests/data/data_obj_literal_test.exs b/test/scion_tests/data/data_obj_literal_test.exs index df9d223..0cf29c3 100644 --- a/test/scion_tests/data/data_obj_literal_test.exs +++ b/test/scion_tests/data/data_obj_literal_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Data.DataObjLiteralTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag spec: "data" test "data_obj_literal" do xml = """ diff --git a/test/scion_tests/default_initial_state/initial1_test.exs b/test/scion_tests/default_initial_state/initial1_test.exs index cf56ad4..076bdd2 100644 --- a/test/scion_tests/default_initial_state/initial1_test.exs +++ b/test/scion_tests/default_initial_state/initial1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.DefaultInitialState.Initial1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "default_initial_state" test "initial1" do xml = """ diff --git a/test/scion_tests/default_initial_state/initial2_test.exs b/test/scion_tests/default_initial_state/initial2_test.exs index 9fc5fd7..33addfe 100644 --- a/test/scion_tests/default_initial_state/initial2_test.exs +++ b/test/scion_tests/default_initial_state/initial2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.DefaultInitialState.Initial2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "default_initial_state" test "initial2" do xml = """ diff --git a/test/scion_tests/delayedSend/send1_test.exs b/test/scion_tests/delayedSend/send1_test.exs index 8a7ae4d..bf620ae 100644 --- a/test/scion_tests/delayedSend/send1_test.exs +++ b/test/scion_tests/delayedSend/send1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.DelayedSend.Send1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :send_elements] @tag spec: "delayed_send" test "send1" do xml = """ diff --git a/test/scion_tests/delayedSend/send2_test.exs b/test/scion_tests/delayedSend/send2_test.exs index 9c7bf12..69aa558 100644 --- a/test/scion_tests/delayedSend/send2_test.exs +++ b/test/scion_tests/delayedSend/send2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.DelayedSend.Send2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :onexit_actions, :send_elements] @tag spec: "delayed_send" test "send2" do xml = """ diff --git a/test/scion_tests/delayedSend/send3_test.exs b/test/scion_tests/delayedSend/send3_test.exs index 3218410..b4892cc 100644 --- a/test/scion_tests/delayedSend/send3_test.exs +++ b/test/scion_tests/delayedSend/send3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.DelayedSend.Send3Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :onentry_actions, :send_elements] @tag spec: "delayed_send" test "send3" do xml = """ diff --git a/test/scion_tests/documentOrder/documentOrder0_test.exs b/test/scion_tests/documentOrder/documentOrder0_test.exs index f785f02..6316dc7 100644 --- a/test/scion_tests/documentOrder/documentOrder0_test.exs +++ b/test/scion_tests/documentOrder/documentOrder0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.DocumentOrder.DocumentOrder0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "document_order" test "documentOrder0" do xml = """ diff --git a/test/scion_tests/error/error_test.exs b/test/scion_tests/error/error_test.exs index a333b1d..e73d941 100644 --- a/test/scion_tests/error/error_test.exs +++ b/test/scion_tests/error/error_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Error.ErrorTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :script_elements, :targetless_transitions] @tag spec: "error" test "error" do xml = """ diff --git a/test/scion_tests/foreach/test1_test.exs b/test/scion_tests/foreach/test1_test.exs index 912fb7f..aa280b4 100644 --- a/test/scion_tests/foreach/test1_test.exs +++ b/test/scion_tests/foreach/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Foreach.Test1Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :onentry_actions] @tag spec: "foreach" test "test1" do xml = """ diff --git a/test/scion_tests/hierarchy/hier0_test.exs b/test/scion_tests/hierarchy/hier0_test.exs index 0cc4463..28af414 100644 --- a/test/scion_tests/hierarchy/hier0_test.exs +++ b/test/scion_tests/hierarchy/hier0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Hierarchy.Hier0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "hierarchy" test "hier0" do xml = """ diff --git a/test/scion_tests/hierarchy/hier1_test.exs b/test/scion_tests/hierarchy/hier1_test.exs index 253a2d0..4958173 100644 --- a/test/scion_tests/hierarchy/hier1_test.exs +++ b/test/scion_tests/hierarchy/hier1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Hierarchy.Hier1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "hierarchy" test "hier1" do xml = """ diff --git a/test/scion_tests/hierarchy/hier2_test.exs b/test/scion_tests/hierarchy/hier2_test.exs index 1947246..e2e5d7c 100644 --- a/test/scion_tests/hierarchy/hier2_test.exs +++ b/test/scion_tests/hierarchy/hier2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Hierarchy.Hier2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "hierarchy" test "hier2" do xml = """ diff --git a/test/scion_tests/hierarchy_documentOrder/test0_test.exs b/test/scion_tests/hierarchy_documentOrder/test0_test.exs index 243e02d..659a3ff 100644 --- a/test/scion_tests/hierarchy_documentOrder/test0_test.exs +++ b/test/scion_tests/hierarchy_documentOrder/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.HierarchyDocumentOrder.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "hierarchy+document_order" test "test0" do xml = """ diff --git a/test/scion_tests/hierarchy_documentOrder/test1_test.exs b/test/scion_tests/hierarchy_documentOrder/test1_test.exs index bf7d5d6..5812c85 100644 --- a/test/scion_tests/hierarchy_documentOrder/test1_test.exs +++ b/test/scion_tests/hierarchy_documentOrder/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.HierarchyDocumentOrder.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "hierarchy+document_order" test "test1" do xml = """ diff --git a/test/scion_tests/history/history0_test.exs b/test/scion_tests/history/history0_test.exs index 47fa96e..629c33e 100644 --- a/test/scion_tests/history/history0_test.exs +++ b/test/scion_tests/history/history0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states] @tag spec: "history" test "history0" do xml = """ diff --git a/test/scion_tests/history/history1_test.exs b/test/scion_tests/history/history1_test.exs index bf8a1db..f4027b5 100644 --- a/test/scion_tests/history/history1_test.exs +++ b/test/scion_tests/history/history1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states] @tag spec: "history" test "history1" do xml = """ diff --git a/test/scion_tests/history/history2_test.exs b/test/scion_tests/history/history2_test.exs index 2037191..70f6762 100644 --- a/test/scion_tests/history/history2_test.exs +++ b/test/scion_tests/history/history2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states] @tag spec: "history" test "history2" do xml = """ diff --git a/test/scion_tests/history/history3_test.exs b/test/scion_tests/history/history3_test.exs index 0ad018f..e87694f 100644 --- a/test/scion_tests/history/history3_test.exs +++ b/test/scion_tests/history/history3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History3Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] @tag spec: "history" test "history3" do xml = """ diff --git a/test/scion_tests/history/history4_test.exs b/test/scion_tests/history/history4_test.exs index 57c2e42..4608bda 100644 --- a/test/scion_tests/history/history4_test.exs +++ b/test/scion_tests/history/history4_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History4Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] @tag spec: "history" test "history4" do xml = """ diff --git a/test/scion_tests/history/history4b_test.exs b/test/scion_tests/history/history4b_test.exs index 315a752..d11544a 100644 --- a/test/scion_tests/history/history4b_test.exs +++ b/test/scion_tests/history/history4b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History4bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] @tag spec: "history" test "history4b" do xml = """ diff --git a/test/scion_tests/history/history5_test.exs b/test/scion_tests/history/history5_test.exs index 5cc02da..0d79444 100644 --- a/test/scion_tests/history/history5_test.exs +++ b/test/scion_tests/history/history5_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History5Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] @tag spec: "history" test "history5" do xml = """ diff --git a/test/scion_tests/history/history6_test.exs b/test/scion_tests/history/history6_test.exs index 027159d..a50d218 100644 --- a/test/scion_tests/history/history6_test.exs +++ b/test/scion_tests/history/history6_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.History.History6Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :history_states, :log_elements, :onentry_actions] @tag spec: "history" test "history6" do xml = """ diff --git a/test/scion_tests/if_else/test0_test.exs b/test/scion_tests/if_else/test0_test.exs index 96bfb22..b1bb4ac 100644 --- a/test/scion_tests/if_else/test0_test.exs +++ b/test/scion_tests/if_else/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.IfElse.Test0Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :onentry_actions, :onexit_actions] @tag spec: "if_else" test "test0" do xml = """ diff --git a/test/scion_tests/in/TestInPredicate_test.exs b/test/scion_tests/in/TestInPredicate_test.exs index 53dfde1..a1732b1 100644 --- a/test/scion_tests/in/TestInPredicate_test.exs +++ b/test/scion_tests/in/TestInPredicate_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.In.TestInPredicateTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :initial_elements, :parallel_states, :raise_elements] @tag spec: "in" test "TestInPredicate" do xml = """ diff --git a/test/scion_tests/internal_transitions/test0_test.exs b/test/scion_tests/internal_transitions/test0_test.exs index 001defa..63beb72 100644 --- a/test/scion_tests/internal_transitions/test0_test.exs +++ b/test/scion_tests/internal_transitions/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.InternalTransitions.Test0Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :internal_transitions, :onentry_actions, :onexit_actions] @tag spec: "internal_transitions" test "test0" do xml = """ diff --git a/test/scion_tests/internal_transitions/test1_test.exs b/test/scion_tests/internal_transitions/test1_test.exs index a479a4b..4598c03 100644 --- a/test/scion_tests/internal_transitions/test1_test.exs +++ b/test/scion_tests/internal_transitions/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.InternalTransitions.Test1Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :internal_transitions, :onentry_actions, :onexit_actions, :parallel_states] @tag spec: "internal_transitions" test "test1" do xml = """ diff --git a/test/scion_tests/misc/deep_initial_test.exs b/test/scion_tests/misc/deep_initial_test.exs index df6376a..4a21590 100644 --- a/test/scion_tests/misc/deep_initial_test.exs +++ b/test/scion_tests/misc/deep_initial_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Misc.DeepInitialTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :log_elements, :onentry_actions] @tag spec: "misc" test "deep-initial" do xml = """ diff --git a/test/scion_tests/more_parallel/test0_test.exs b/test/scion_tests/more_parallel/test0_test.exs index ea25063..ec81678 100644 --- a/test/scion_tests/more_parallel/test0_test.exs +++ b/test/scion_tests/more_parallel/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test0" do xml = """ diff --git a/test/scion_tests/more_parallel/test10_test.exs b/test/scion_tests/more_parallel/test10_test.exs index a4b9d54..fd03e7a 100644 --- a/test/scion_tests/more_parallel/test10_test.exs +++ b/test/scion_tests/more_parallel/test10_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test10Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :onentry_actions, :onexit_actions, :parallel_states] @tag spec: "more_parallel" test "test10" do xml = """ diff --git a/test/scion_tests/more_parallel/test10b_test.exs b/test/scion_tests/more_parallel/test10b_test.exs index 2dd9f31..bd498c6 100644 --- a/test/scion_tests/more_parallel/test10b_test.exs +++ b/test/scion_tests/more_parallel/test10b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test10bTest do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :onentry_actions, :onexit_actions, :parallel_states] @tag spec: "more_parallel" test "test10b" do xml = """ diff --git a/test/scion_tests/more_parallel/test1_test.exs b/test/scion_tests/more_parallel/test1_test.exs index 2f9d2ff..d477da9 100644 --- a/test/scion_tests/more_parallel/test1_test.exs +++ b/test/scion_tests/more_parallel/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test1" do xml = """ diff --git a/test/scion_tests/more_parallel/test2_test.exs b/test/scion_tests/more_parallel/test2_test.exs index 84a3c2f..d90c391 100644 --- a/test/scion_tests/more_parallel/test2_test.exs +++ b/test/scion_tests/more_parallel/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test2" do xml = """ diff --git a/test/scion_tests/more_parallel/test2b_test.exs b/test/scion_tests/more_parallel/test2b_test.exs index 79373a0..d9d1c58 100644 --- a/test/scion_tests/more_parallel/test2b_test.exs +++ b/test/scion_tests/more_parallel/test2b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test2bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test2b" do xml = """ diff --git a/test/scion_tests/more_parallel/test3_test.exs b/test/scion_tests/more_parallel/test3_test.exs index 10e79ac..54c871e 100644 --- a/test/scion_tests/more_parallel/test3_test.exs +++ b/test/scion_tests/more_parallel/test3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test3Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test3" do xml = """ diff --git a/test/scion_tests/more_parallel/test3b_test.exs b/test/scion_tests/more_parallel/test3b_test.exs index e87fbc1..dfb9bb0 100644 --- a/test/scion_tests/more_parallel/test3b_test.exs +++ b/test/scion_tests/more_parallel/test3b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test3bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test3b" do xml = """ diff --git a/test/scion_tests/more_parallel/test4_test.exs b/test/scion_tests/more_parallel/test4_test.exs index 486c9f4..9aee2e5 100644 --- a/test/scion_tests/more_parallel/test4_test.exs +++ b/test/scion_tests/more_parallel/test4_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test4Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test4" do xml = """ diff --git a/test/scion_tests/more_parallel/test5_test.exs b/test/scion_tests/more_parallel/test5_test.exs index 1532218..44e4733 100644 --- a/test/scion_tests/more_parallel/test5_test.exs +++ b/test/scion_tests/more_parallel/test5_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test5Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test5" do xml = """ diff --git a/test/scion_tests/more_parallel/test6_test.exs b/test/scion_tests/more_parallel/test6_test.exs index 97597be..4a17891 100644 --- a/test/scion_tests/more_parallel/test6_test.exs +++ b/test/scion_tests/more_parallel/test6_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test6Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test6" do xml = """ diff --git a/test/scion_tests/more_parallel/test6b_test.exs b/test/scion_tests/more_parallel/test6b_test.exs index 6a8bb51..6a28a1e 100644 --- a/test/scion_tests/more_parallel/test6b_test.exs +++ b/test/scion_tests/more_parallel/test6b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test6bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test6b" do xml = """ diff --git a/test/scion_tests/more_parallel/test7_test.exs b/test/scion_tests/more_parallel/test7_test.exs index ff4acf5..b82661a 100644 --- a/test/scion_tests/more_parallel/test7_test.exs +++ b/test/scion_tests/more_parallel/test7_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test7Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test7" do xml = """ diff --git a/test/scion_tests/more_parallel/test8_test.exs b/test/scion_tests/more_parallel/test8_test.exs index 2119420..2f044f1 100644 --- a/test/scion_tests/more_parallel/test8_test.exs +++ b/test/scion_tests/more_parallel/test8_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test8Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test8" do xml = """ diff --git a/test/scion_tests/more_parallel/test9_test.exs b/test/scion_tests/more_parallel/test9_test.exs index 7e40b9e..f5f1cf3 100644 --- a/test/scion_tests/more_parallel/test9_test.exs +++ b/test/scion_tests/more_parallel/test9_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MoreParallel.Test9Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "more_parallel" test "test9" do xml = """ diff --git a/test/scion_tests/multiple_events_per_transition/test1_test.exs b/test/scion_tests/multiple_events_per_transition/test1_test.exs index e8940d9..b46f26c 100644 --- a/test/scion_tests/multiple_events_per_transition/test1_test.exs +++ b/test/scion_tests/multiple_events_per_transition/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.MultipleEventsPerTransition.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "multiple_events_per_transition" test "test1" do xml = """ diff --git a/test/scion_tests/parallel/test0_test.exs b/test/scion_tests/parallel/test0_test.exs index 0eefee1..70baf49 100644 --- a/test/scion_tests/parallel/test0_test.exs +++ b/test/scion_tests/parallel/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Parallel.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :parallel_states] @tag spec: "parallel" test "test0" do xml = """ diff --git a/test/scion_tests/parallel/test1_test.exs b/test/scion_tests/parallel/test1_test.exs index c5f7c40..eefc91d 100644 --- a/test/scion_tests/parallel/test1_test.exs +++ b/test/scion_tests/parallel/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Parallel.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :initial_elements, :parallel_states] @tag spec: "parallel" test "test1" do xml = """ diff --git a/test/scion_tests/parallel/test2_test.exs b/test/scion_tests/parallel/test2_test.exs index 55c2612..0534b6e 100644 --- a/test/scion_tests/parallel/test2_test.exs +++ b/test/scion_tests/parallel/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Parallel.Test2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel" test "test2" do xml = """ diff --git a/test/scion_tests/parallel/test3_test.exs b/test/scion_tests/parallel/test3_test.exs index 3523b6e..f19cbcf 100644 --- a/test/scion_tests/parallel/test3_test.exs +++ b/test/scion_tests/parallel/test3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Parallel.Test3Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel" test "test3" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test0_test.exs b/test/scion_tests/parallel_interrupt/test0_test.exs index 7ecb89b..c77f26d 100644 --- a/test/scion_tests/parallel_interrupt/test0_test.exs +++ b/test/scion_tests/parallel_interrupt/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test0" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test10_test.exs b/test/scion_tests/parallel_interrupt/test10_test.exs index 8901dea..742c873 100644 --- a/test/scion_tests/parallel_interrupt/test10_test.exs +++ b/test/scion_tests/parallel_interrupt/test10_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test10Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test10" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test11_test.exs b/test/scion_tests/parallel_interrupt/test11_test.exs index 6813823..360ad7c 100644 --- a/test/scion_tests/parallel_interrupt/test11_test.exs +++ b/test/scion_tests/parallel_interrupt/test11_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test11Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test11" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test12_test.exs b/test/scion_tests/parallel_interrupt/test12_test.exs index d430c2b..c911d90 100644 --- a/test/scion_tests/parallel_interrupt/test12_test.exs +++ b/test/scion_tests/parallel_interrupt/test12_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test12Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test12" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test13_test.exs b/test/scion_tests/parallel_interrupt/test13_test.exs index d6cb1d8..8961442 100644 --- a/test/scion_tests/parallel_interrupt/test13_test.exs +++ b/test/scion_tests/parallel_interrupt/test13_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test13Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test13" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test14_test.exs b/test/scion_tests/parallel_interrupt/test14_test.exs index 1b267ed..8ea4660 100644 --- a/test/scion_tests/parallel_interrupt/test14_test.exs +++ b/test/scion_tests/parallel_interrupt/test14_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test14Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test14" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test15_test.exs b/test/scion_tests/parallel_interrupt/test15_test.exs index b2e7442..4c37f7f 100644 --- a/test/scion_tests/parallel_interrupt/test15_test.exs +++ b/test/scion_tests/parallel_interrupt/test15_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test15Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test15" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test16_test.exs b/test/scion_tests/parallel_interrupt/test16_test.exs index 92df2be..5b5cd0f 100644 --- a/test/scion_tests/parallel_interrupt/test16_test.exs +++ b/test/scion_tests/parallel_interrupt/test16_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test16Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test16" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test17_test.exs b/test/scion_tests/parallel_interrupt/test17_test.exs index 85d4814..97dbd09 100644 --- a/test/scion_tests/parallel_interrupt/test17_test.exs +++ b/test/scion_tests/parallel_interrupt/test17_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test17Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test17" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test18_test.exs b/test/scion_tests/parallel_interrupt/test18_test.exs index 5b405e2..f007286 100644 --- a/test/scion_tests/parallel_interrupt/test18_test.exs +++ b/test/scion_tests/parallel_interrupt/test18_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test18Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test18" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test19_test.exs b/test/scion_tests/parallel_interrupt/test19_test.exs index f564a73..e3d2062 100644 --- a/test/scion_tests/parallel_interrupt/test19_test.exs +++ b/test/scion_tests/parallel_interrupt/test19_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test19Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test19" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test1_test.exs b/test/scion_tests/parallel_interrupt/test1_test.exs index 3050ce5..c21ed54 100644 --- a/test/scion_tests/parallel_interrupt/test1_test.exs +++ b/test/scion_tests/parallel_interrupt/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test1" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test20_test.exs b/test/scion_tests/parallel_interrupt/test20_test.exs index c8ede69..d213acf 100644 --- a/test/scion_tests/parallel_interrupt/test20_test.exs +++ b/test/scion_tests/parallel_interrupt/test20_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test20Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test20" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test21_test.exs b/test/scion_tests/parallel_interrupt/test21_test.exs index 7aed95c..2d7fd4e 100644 --- a/test/scion_tests/parallel_interrupt/test21_test.exs +++ b/test/scion_tests/parallel_interrupt/test21_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test21Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test21" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test21b_test.exs b/test/scion_tests/parallel_interrupt/test21b_test.exs index 306f04e..16c47a6 100644 --- a/test/scion_tests/parallel_interrupt/test21b_test.exs +++ b/test/scion_tests/parallel_interrupt/test21b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test21bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test21b" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test21c_test.exs b/test/scion_tests/parallel_interrupt/test21c_test.exs index 67866a5..5018324 100644 --- a/test/scion_tests/parallel_interrupt/test21c_test.exs +++ b/test/scion_tests/parallel_interrupt/test21c_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test21cTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test21c" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test22_test.exs b/test/scion_tests/parallel_interrupt/test22_test.exs index 4042393..c9e578e 100644 --- a/test/scion_tests/parallel_interrupt/test22_test.exs +++ b/test/scion_tests/parallel_interrupt/test22_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test22Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test22" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test23_test.exs b/test/scion_tests/parallel_interrupt/test23_test.exs index 50316b1..46505bb 100644 --- a/test/scion_tests/parallel_interrupt/test23_test.exs +++ b/test/scion_tests/parallel_interrupt/test23_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test23Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test23" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test24_test.exs b/test/scion_tests/parallel_interrupt/test24_test.exs index 39ab498..5cfbffa 100644 --- a/test/scion_tests/parallel_interrupt/test24_test.exs +++ b/test/scion_tests/parallel_interrupt/test24_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test24Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test24" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test25_test.exs b/test/scion_tests/parallel_interrupt/test25_test.exs index a2a750a..c2351aa 100644 --- a/test/scion_tests/parallel_interrupt/test25_test.exs +++ b/test/scion_tests/parallel_interrupt/test25_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test25Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test25" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test27_test.exs b/test/scion_tests/parallel_interrupt/test27_test.exs index 7cd698e..750a6b3 100644 --- a/test/scion_tests/parallel_interrupt/test27_test.exs +++ b/test/scion_tests/parallel_interrupt/test27_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test27Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test27" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test28_test.exs b/test/scion_tests/parallel_interrupt/test28_test.exs index 5335be2..189a3ca 100644 --- a/test/scion_tests/parallel_interrupt/test28_test.exs +++ b/test/scion_tests/parallel_interrupt/test28_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test28Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test28" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test29_test.exs b/test/scion_tests/parallel_interrupt/test29_test.exs index 33c1af8..b403bb5 100644 --- a/test/scion_tests/parallel_interrupt/test29_test.exs +++ b/test/scion_tests/parallel_interrupt/test29_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test29Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test29" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test2_test.exs b/test/scion_tests/parallel_interrupt/test2_test.exs index f6744f1..005e880 100644 --- a/test/scion_tests/parallel_interrupt/test2_test.exs +++ b/test/scion_tests/parallel_interrupt/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test2" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test30_test.exs b/test/scion_tests/parallel_interrupt/test30_test.exs index 25416be..bf8dbed 100644 --- a/test/scion_tests/parallel_interrupt/test30_test.exs +++ b/test/scion_tests/parallel_interrupt/test30_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test30Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test30" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test31_test.exs b/test/scion_tests/parallel_interrupt/test31_test.exs index 4598cec..7cb5bb4 100644 --- a/test/scion_tests/parallel_interrupt/test31_test.exs +++ b/test/scion_tests/parallel_interrupt/test31_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test31Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test31" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test3_test.exs b/test/scion_tests/parallel_interrupt/test3_test.exs index 3241e1a..fe995eb 100644 --- a/test/scion_tests/parallel_interrupt/test3_test.exs +++ b/test/scion_tests/parallel_interrupt/test3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test3Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test3" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test4_test.exs b/test/scion_tests/parallel_interrupt/test4_test.exs index 9d77ac1..79ea8ea 100644 --- a/test/scion_tests/parallel_interrupt/test4_test.exs +++ b/test/scion_tests/parallel_interrupt/test4_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test4Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test4" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test5_test.exs b/test/scion_tests/parallel_interrupt/test5_test.exs index fb61a9f..d154ed1 100644 --- a/test/scion_tests/parallel_interrupt/test5_test.exs +++ b/test/scion_tests/parallel_interrupt/test5_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test5Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test5" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test6_test.exs b/test/scion_tests/parallel_interrupt/test6_test.exs index ab95473..e4f428a 100644 --- a/test/scion_tests/parallel_interrupt/test6_test.exs +++ b/test/scion_tests/parallel_interrupt/test6_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test6Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test6" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test7_test.exs b/test/scion_tests/parallel_interrupt/test7_test.exs index 63a1646..136aa8d 100644 --- a/test/scion_tests/parallel_interrupt/test7_test.exs +++ b/test/scion_tests/parallel_interrupt/test7_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test7Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test7" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test7b_test.exs b/test/scion_tests/parallel_interrupt/test7b_test.exs index 42d0469..73d0f0a 100644 --- a/test/scion_tests/parallel_interrupt/test7b_test.exs +++ b/test/scion_tests/parallel_interrupt/test7b_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test7bTest do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test7b" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test8_test.exs b/test/scion_tests/parallel_interrupt/test8_test.exs index 00eaf59..ff18f7e 100644 --- a/test/scion_tests/parallel_interrupt/test8_test.exs +++ b/test/scion_tests/parallel_interrupt/test8_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test8Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test8" do xml = """ diff --git a/test/scion_tests/parallel_interrupt/test9_test.exs b/test/scion_tests/parallel_interrupt/test9_test.exs index ffd4510..6f085a3 100644 --- a/test/scion_tests/parallel_interrupt/test9_test.exs +++ b/test/scion_tests/parallel_interrupt/test9_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ParallelInterrupt.Test9Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :compound_states, :event_transitions, :parallel_states] @tag spec: "parallel+interrupt" test "test9" do xml = """ diff --git a/test/scion_tests/script/test0_test.exs b/test/scion_tests/script/test0_test.exs index 8c8dd49..c170905 100644 --- a/test/scion_tests/script/test0_test.exs +++ b/test/scion_tests/script/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Script.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] @tag spec: "script" test "test0" do xml = """ diff --git a/test/scion_tests/script/test1_test.exs b/test/scion_tests/script/test1_test.exs index 1d08e66..9b3e827 100644 --- a/test/scion_tests/script/test1_test.exs +++ b/test/scion_tests/script/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Script.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] @tag spec: "script" test "test1" do xml = """ diff --git a/test/scion_tests/script/test2_test.exs b/test/scion_tests/script/test2_test.exs index f560ac9..57f8a15 100644 --- a/test/scion_tests/script/test2_test.exs +++ b/test/scion_tests/script/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.Script.Test2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] @tag spec: "script" test "test2" do xml = """ diff --git a/test/scion_tests/script_src/test0_test.exs b/test/scion_tests/script_src/test0_test.exs index 8c89159..9360b57 100644 --- a/test/scion_tests/script_src/test0_test.exs +++ b/test/scion_tests/script_src/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ScriptSrc.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] @tag spec: "script_src" test "test0" do xml = """ diff --git a/test/scion_tests/script_src/test1_test.exs b/test/scion_tests/script_src/test1_test.exs index d0c825f..2c000c0 100644 --- a/test/scion_tests/script_src/test1_test.exs +++ b/test/scion_tests/script_src/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ScriptSrc.Test1Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] @tag spec: "script_src" test "test1" do xml = """ diff --git a/test/scion_tests/script_src/test2_test.exs b/test/scion_tests/script_src/test2_test.exs index 190b2bb..71b8ab7 100644 --- a/test/scion_tests/script_src/test2_test.exs +++ b/test/scion_tests/script_src/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ScriptSrc.Test2Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] @tag spec: "script_src" test "test2" do xml = """ diff --git a/test/scion_tests/script_src/test3_test.exs b/test/scion_tests/script_src/test3_test.exs index dac9e16..e09e6ab 100644 --- a/test/scion_tests/script_src/test3_test.exs +++ b/test/scion_tests/script_src/test3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ScriptSrc.Test3Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] @tag spec: "script_src" test "test3" do xml = """ diff --git a/test/scion_tests/scxml_prefix_event_name_matching/star0_test.exs b/test/scion_tests/scxml_prefix_event_name_matching/star0_test.exs index 5880840..8e4b3a7 100644 --- a/test/scion_tests/scxml_prefix_event_name_matching/star0_test.exs +++ b/test/scion_tests/scxml_prefix_event_name_matching/star0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ScxmlPrefixEventNameMatching.Star0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "scxml_prefix_event_name_matching" test "star0" do xml = """ diff --git a/test/scion_tests/scxml_prefix_event_name_matching/test0_test.exs b/test/scion_tests/scxml_prefix_event_name_matching/test0_test.exs index faf4143..df140a9 100644 --- a/test/scion_tests/scxml_prefix_event_name_matching/test0_test.exs +++ b/test/scion_tests/scxml_prefix_event_name_matching/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ScxmlPrefixEventNameMatching.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "scxml_prefix_event_name_matching" test "test0" do xml = """ diff --git a/test/scion_tests/scxml_prefix_event_name_matching/test1_test.exs b/test/scion_tests/scxml_prefix_event_name_matching/test1_test.exs index cdeadf3..a1e2fb5 100644 --- a/test/scion_tests/scxml_prefix_event_name_matching/test1_test.exs +++ b/test/scion_tests/scxml_prefix_event_name_matching/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.ScxmlPrefixEventNameMatching.Test1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :event_transitions] @tag spec: "scxml_prefix_event_name_matching" test "test1" do xml = """ diff --git a/test/scion_tests/send_data/send1_test.exs b/test/scion_tests/send_data/send1_test.exs index 1847127..537ab7f 100644 --- a/test/scion_tests/send_data/send1_test.exs +++ b/test/scion_tests/send_data/send1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.SendData.Send1Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :send_elements] @tag spec: "send_data" test "send1" do xml = """ diff --git a/test/scion_tests/send_idlocation/test0_test.exs b/test/scion_tests/send_idlocation/test0_test.exs index c9aa27a..8af8b0d 100644 --- a/test/scion_tests/send_idlocation/test0_test.exs +++ b/test/scion_tests/send_idlocation/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.SendIdlocation.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements, :send_idlocation] @tag spec: "send_idlocation" test "test0" do xml = """ diff --git a/test/scion_tests/send_internal/test0_test.exs b/test/scion_tests/send_internal/test0_test.exs index bf7d1be..b0ac33b 100644 --- a/test/scion_tests/send_internal/test0_test.exs +++ b/test/scion_tests/send_internal/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.SendInternal.Test0Test do use SC.Case @tag :scion + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :send_elements] @tag spec: "send_internal" test "test0" do xml = """ diff --git a/test/scion_tests/targetless_transition/test0_test.exs b/test/scion_tests/targetless_transition/test0_test.exs index 900ed2f..aa5af9d 100644 --- a/test/scion_tests/targetless_transition/test0_test.exs +++ b/test/scion_tests/targetless_transition/test0_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.TargetlessTransition.Test0Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :targetless_transitions] @tag spec: "targetless_transition" test "test0" do xml = """ diff --git a/test/scion_tests/targetless_transition/test1_test.exs b/test/scion_tests/targetless_transition/test1_test.exs index be067f0..de40bb5 100644 --- a/test/scion_tests/targetless_transition/test1_test.exs +++ b/test/scion_tests/targetless_transition/test1_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.TargetlessTransition.Test1Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :targetless_transitions] @tag spec: "targetless_transition" test "test1" do xml = """ diff --git a/test/scion_tests/targetless_transition/test2_test.exs b/test/scion_tests/targetless_transition/test2_test.exs index f0ae285..163f203 100644 --- a/test/scion_tests/targetless_transition/test2_test.exs +++ b/test/scion_tests/targetless_transition/test2_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.TargetlessTransition.Test2Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :targetless_transitions] @tag spec: "targetless_transition" test "test2" do xml = """ diff --git a/test/scion_tests/targetless_transition/test3_test.exs b/test/scion_tests/targetless_transition/test3_test.exs index 0929db2..16afc3d 100644 --- a/test/scion_tests/targetless_transition/test3_test.exs +++ b/test/scion_tests/targetless_transition/test3_test.exs @@ -1,6 +1,7 @@ defmodule SCIONTest.TargetlessTransition.Test3Test do use SC.Case @tag :scion + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :parallel_states, :targetless_transitions] @tag spec: "targetless_transition" test "test3" do xml = """ diff --git a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs index 6f7edc0..0b3ac1d 100644 --- a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs +++ b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.EvaluationofExecutableContent.Test158 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "EvaluationofExecutableContent" test "test158" do xml = """ diff --git a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs index 25111fb..c231f49 100644 --- a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs +++ b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.EvaluationofExecutableContent.Test159 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] @tag conformance: "mandatory", spec: "EvaluationofExecutableContent" test "test159" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs index 7c0430f..ac63d29 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test403a do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test403a" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs index 8c2da86..79e361e 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test403b do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :targetless_transitions] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test403b" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs index 886d0db..ed14609 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test403c do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements, :targetless_transitions] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test403c" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs index b41f39b..c7957f1 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test404 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test404" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs index bda78eb..7136c51 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test405 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test405" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs index 51cd781..aac0ed3 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test406 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test406" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs index 67e3285..515c3ac 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test407 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test407" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs index 121c6ab..d4d7222 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test409 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test409" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs index 30e8e5b..5f6b1f6 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test411 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test411" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs index cacda72..a1762ad 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test412 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :initial_elements, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test412" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs index 36952c1..56ee319 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test413 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test413" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs index 12fd21c..671446c 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test416 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test416" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs index eb73735..72f030e 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test417 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test417" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs index 92c19e0..844a453 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test419 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test419" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs index 31ed107..ea704af 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test421 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test421" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs index 5cedf8c..4ed3cae 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test422 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements, :targetless_transitions] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test422" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs index dd73214..7290e94 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test423 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test423" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs index 3793049..88e164c 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test503 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :raise_elements, :targetless_transitions] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test503" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs index bafbfcf..4bc75c4 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test504 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test504" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs index dea9e27..5a4272b 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test505 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :internal_transitions, :log_elements, :onentry_actions, :onexit_actions, :raise_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test505" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs index 6bd94e3..dea4d37 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test506 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :internal_transitions, :log_elements, :onentry_actions, :onexit_actions, :raise_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test506" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs index 581cbf1..1a3ca19 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.SelectingTransitions.Test533 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :internal_transitions, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test533" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test276_test.exs b/test/scxml_tests/mandatory/data/test276_test.exs index 7fad86b..b836d08 100644 --- a/test/scxml_tests/mandatory/data/test276_test.exs +++ b/test/scxml_tests/mandatory/data/test276_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Data.Test276 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "data" test "test276" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test276sub1_test.exs b/test/scxml_tests/mandatory/data/test276sub1_test.exs index 6ebf0ce..3052bf6 100644 --- a/test/scxml_tests/mandatory/data/test276sub1_test.exs +++ b/test/scxml_tests/mandatory/data/test276sub1_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Data.Test276sub1 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :send_elements] @tag conformance: "mandatory", spec: "data" test "test276sub1" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test277_test.exs b/test/scxml_tests/mandatory/data/test277_test.exs index 8000eb2..860b7ff 100644 --- a/test/scxml_tests/mandatory/data/test277_test.exs +++ b/test/scxml_tests/mandatory/data/test277_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Data.Test277 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "data" test "test277" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test279_test.exs b/test/scxml_tests/mandatory/data/test279_test.exs index 0381ba0..43ed5b5 100644 --- a/test/scxml_tests/mandatory/data/test279_test.exs +++ b/test/scxml_tests/mandatory/data/test279_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Data.Test279 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "data" test "test279" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test280_test.exs b/test/scxml_tests/mandatory/data/test280_test.exs index 77f2ea4..369b891 100644 --- a/test/scxml_tests/mandatory/data/test280_test.exs +++ b/test/scxml_tests/mandatory/data/test280_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Data.Test280 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "data" test "test280" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test550_test.exs b/test/scxml_tests/mandatory/data/test550_test.exs index 37e2853..cb49baf 100644 --- a/test/scxml_tests/mandatory/data/test550_test.exs +++ b/test/scxml_tests/mandatory/data/test550_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Data.Test550 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "data" test "test550" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test551_test.exs b/test/scxml_tests/mandatory/data/test551_test.exs index d0a2fce..7348525 100644 --- a/test/scxml_tests/mandatory/data/test551_test.exs +++ b/test/scxml_tests/mandatory/data/test551_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Data.Test551 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "data" test "test551" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test396_test.exs b/test/scxml_tests/mandatory/events/test396_test.exs index 0997dc1..d5cfccd 100644 --- a/test/scxml_tests/mandatory/events/test396_test.exs +++ b/test/scxml_tests/mandatory/events/test396_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Events.Test396 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "events" test "test396" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test399_test.exs b/test/scxml_tests/mandatory/events/test399_test.exs index 5a9c88a..0d72b0a 100644 --- a/test/scxml_tests/mandatory/events/test399_test.exs +++ b/test/scxml_tests/mandatory/events/test399_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Events.Test399 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "events" test "test399" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test401_test.exs b/test/scxml_tests/mandatory/events/test401_test.exs index b8f951a..fe755ca 100644 --- a/test/scxml_tests/mandatory/events/test401_test.exs +++ b/test/scxml_tests/mandatory/events/test401_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Events.Test401 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] @tag conformance: "mandatory", spec: "events" test "test401" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test402_test.exs b/test/scxml_tests/mandatory/events/test402_test.exs index f90d82d..51d6b30 100644 --- a/test/scxml_tests/mandatory/events/test402_test.exs +++ b/test/scxml_tests/mandatory/events/test402_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Events.Test402 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "events" test "test402" do xml = """ diff --git a/test/scxml_tests/mandatory/final/test372_test.exs b/test/scxml_tests/mandatory/final/test372_test.exs index 9023175..3c54307 100644 --- a/test/scxml_tests/mandatory/final/test372_test.exs +++ b/test/scxml_tests/mandatory/final/test372_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Final.Test372 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :send_elements] @tag conformance: "mandatory", spec: "final" test "test372" do xml = """ diff --git a/test/scxml_tests/mandatory/final/test570_test.exs b/test/scxml_tests/mandatory/final/test570_test.exs index f1f1208..29205e5 100644 --- a/test/scxml_tests/mandatory/final/test570_test.exs +++ b/test/scxml_tests/mandatory/final/test570_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Final.Test570 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements, :targetless_transitions] @tag conformance: "mandatory", spec: "final" test "test570" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test150_test.exs b/test/scxml_tests/mandatory/foreach/test150_test.exs index 5fa9b5b..d984cf2 100644 --- a/test/scxml_tests/mandatory/foreach/test150_test.exs +++ b/test/scxml_tests/mandatory/foreach/test150_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Foreach.Test150 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "foreach" test "test150" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test151_test.exs b/test/scxml_tests/mandatory/foreach/test151_test.exs index d7cfc3c..0b70776 100644 --- a/test/scxml_tests/mandatory/foreach/test151_test.exs +++ b/test/scxml_tests/mandatory/foreach/test151_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Foreach.Test151 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "foreach" test "test151" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test152_test.exs b/test/scxml_tests/mandatory/foreach/test152_test.exs index 1d2bf31..65c5a42 100644 --- a/test/scxml_tests/mandatory/foreach/test152_test.exs +++ b/test/scxml_tests/mandatory/foreach/test152_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Foreach.Test152 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "foreach" test "test152" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test153_test.exs b/test/scxml_tests/mandatory/foreach/test153_test.exs index 43bbbc4..9dfca2d 100644 --- a/test/scxml_tests/mandatory/foreach/test153_test.exs +++ b/test/scxml_tests/mandatory/foreach/test153_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Foreach.Test153 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "foreach" test "test153" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test155_test.exs b/test/scxml_tests/mandatory/foreach/test155_test.exs index 8639e42..70ab8ba 100644 --- a/test/scxml_tests/mandatory/foreach/test155_test.exs +++ b/test/scxml_tests/mandatory/foreach/test155_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Foreach.Test155 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "foreach" test "test155" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test156_test.exs b/test/scxml_tests/mandatory/foreach/test156_test.exs index 47145c1..e0c49d6 100644 --- a/test/scxml_tests/mandatory/foreach/test156_test.exs +++ b/test/scxml_tests/mandatory/foreach/test156_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Foreach.Test156 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "foreach" test "test156" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test525_test.exs b/test/scxml_tests/mandatory/foreach/test525_test.exs index 322e6c5..c32a993 100644 --- a/test/scxml_tests/mandatory/foreach/test525_test.exs +++ b/test/scxml_tests/mandatory/foreach/test525_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Foreach.Test525 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "foreach" test "test525" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test387_test.exs b/test/scxml_tests/mandatory/history/test387_test.exs index 7c2aa15..3d9ab40 100644 --- a/test/scxml_tests/mandatory/history/test387_test.exs +++ b/test/scxml_tests/mandatory/history/test387_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.History.Test387 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :history_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "history" test "test387" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test388_test.exs b/test/scxml_tests/mandatory/history/test388_test.exs index 3f2370f..705a40f 100644 --- a/test/scxml_tests/mandatory/history/test388_test.exs +++ b/test/scxml_tests/mandatory/history/test388_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.History.Test388 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :history_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "history" test "test388" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test579_test.exs b/test/scxml_tests/mandatory/history/test579_test.exs index fc28fa4..ba674d5 100644 --- a/test/scxml_tests/mandatory/history/test579_test.exs +++ b/test/scxml_tests/mandatory/history/test579_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.History.Test579 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :history_states, :initial_elements, :log_elements, :onentry_actions, :onexit_actions, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "history" test "test579" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test580_test.exs b/test/scxml_tests/mandatory/history/test580_test.exs index 580a1b5..b4cb7ce 100644 --- a/test/scxml_tests/mandatory/history/test580_test.exs +++ b/test/scxml_tests/mandatory/history/test580_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.History.Test580 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :history_states, :initial_elements, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :send_elements] @tag conformance: "mandatory", spec: "history" test "test580" do xml = """ diff --git a/test/scxml_tests/mandatory/if/test147_test.exs b/test/scxml_tests/mandatory/if/test147_test.exs index d7a0989..05e26c9 100644 --- a/test/scxml_tests/mandatory/if/test147_test.exs +++ b/test/scxml_tests/mandatory/if/test147_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.If.Test147 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "if" test "test147" do xml = """ diff --git a/test/scxml_tests/mandatory/if/test148_test.exs b/test/scxml_tests/mandatory/if/test148_test.exs index 3002f06..7047a83 100644 --- a/test/scxml_tests/mandatory/if/test148_test.exs +++ b/test/scxml_tests/mandatory/if/test148_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.If.Test148 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "if" test "test148" do xml = """ diff --git a/test/scxml_tests/mandatory/if/test149_test.exs b/test/scxml_tests/mandatory/if/test149_test.exs index 55a0109..5f3b5f5 100644 --- a/test/scxml_tests/mandatory/if/test149_test.exs +++ b/test/scxml_tests/mandatory/if/test149_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.If.Test149 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "if" test "test149" do xml = """ diff --git a/test/scxml_tests/mandatory/onentry/test375_test.exs b/test/scxml_tests/mandatory/onentry/test375_test.exs index a70dd5a..d8af5d7 100644 --- a/test/scxml_tests/mandatory/onentry/test375_test.exs +++ b/test/scxml_tests/mandatory/onentry/test375_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Onentry.Test375 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "onentry" test "test375" do xml = """ diff --git a/test/scxml_tests/mandatory/onentry/test376_test.exs b/test/scxml_tests/mandatory/onentry/test376_test.exs index 7129ea6..231549f 100644 --- a/test/scxml_tests/mandatory/onentry/test376_test.exs +++ b/test/scxml_tests/mandatory/onentry/test376_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Onentry.Test376 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] @tag conformance: "mandatory", spec: "onentry" test "test376" do xml = """ diff --git a/test/scxml_tests/mandatory/onexit/test377_test.exs b/test/scxml_tests/mandatory/onexit/test377_test.exs index 856c0ae..efb723b 100644 --- a/test/scxml_tests/mandatory/onexit/test377_test.exs +++ b/test/scxml_tests/mandatory/onexit/test377_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Onexit.Test377 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :raise_elements] @tag conformance: "mandatory", spec: "onexit" test "test377" do xml = """ diff --git a/test/scxml_tests/mandatory/onexit/test378_test.exs b/test/scxml_tests/mandatory/onexit/test378_test.exs index 378dce8..2ef7982 100644 --- a/test/scxml_tests/mandatory/onexit/test378_test.exs +++ b/test/scxml_tests/mandatory/onexit/test378_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Onexit.Test378 do use SC.Case @tag :scxml_w3 + @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :send_elements] @tag conformance: "mandatory", spec: "onexit" test "test378" do xml = """ diff --git a/test/scxml_tests/mandatory/raise/test144_test.exs b/test/scxml_tests/mandatory/raise/test144_test.exs index 2dbd99e..8f1b180 100644 --- a/test/scxml_tests/mandatory/raise/test144_test.exs +++ b/test/scxml_tests/mandatory/raise/test144_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Raise.Test144 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] @tag conformance: "mandatory", spec: "raise" test "test144" do xml = """ diff --git a/test/scxml_tests/mandatory/scxml/test355_test.exs b/test/scxml_tests/mandatory/scxml/test355_test.exs index bdee2b9..caae6f0 100644 --- a/test/scxml_tests/mandatory/scxml/test355_test.exs +++ b/test/scxml_tests/mandatory/scxml/test355_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Scxml.Test355 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions] @tag conformance: "mandatory", spec: "scxml" test "test355" do xml = """ diff --git a/test/scxml_tests/mandatory/scxml/test576_test.exs b/test/scxml_tests/mandatory/scxml/test576_test.exs index dffbcde..b24169c 100644 --- a/test/scxml_tests/mandatory/scxml/test576_test.exs +++ b/test/scxml_tests/mandatory/scxml/test576_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.Scxml.Test576 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "scxml" test "test576" do xml = """ diff --git a/test/scxml_tests/mandatory/state/test364_test.exs b/test/scxml_tests/mandatory/state/test364_test.exs index 0e51e35..385241f 100644 --- a/test/scxml_tests/mandatory/state/test364_test.exs +++ b/test/scxml_tests/mandatory/state/test364_test.exs @@ -1,6 +1,7 @@ defmodule SCXMLTest.State.Test364 do use SC.Case @tag :scxml_w3 + @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :initial_elements, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements] @tag conformance: "mandatory", spec: "state" test "test364" do xml = """ From f7950722ba22ad78a2fc97e457c6e3efca51f1ca Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:32:41 -0600 Subject: [PATCH 05/11] Lints documentation --- CLAUDE.md | 1 + documentation/SCXML_IMPLEMENTATION_PLAN.md | 61 ++++++++++++++------ documentation/feature_complexity_analysis.md | 44 ++++++++++---- documentation/implementation_roadmap.md | 28 ++++++++- documentation/test_analysis_summary.md | 15 ++++- 5 files changed, 116 insertions(+), 33 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index c4058dc..3630b29 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -314,6 +314,7 @@ XML content within triple quotes uses 4-space base indentation. ### Current Implementation Status (Phase 0 - Complete) ✅ **Structural SCXML Features** - Complete W3C compliance for basic state machine functionality: + - Core state machine elements (states, transitions, parallel, initial) - SCXML-compliant processing model (microstep/macrostep, exit sets, LCCA) - Conditional transitions with expression evaluation diff --git a/documentation/SCXML_IMPLEMENTATION_PLAN.md b/documentation/SCXML_IMPLEMENTATION_PLAN.md index 7be8aa1..a733bf8 100644 --- a/documentation/SCXML_IMPLEMENTATION_PLAN.md +++ b/documentation/SCXML_IMPLEMENTATION_PLAN.md @@ -11,17 +11,20 @@ This document outlines the comprehensive plan to achieve near-complete SCXML (St ## Current Test Coverage Analysis ### Test Suite Breakdown + - **SCION Tests**: 127 test files from the SCION JavaScript SCXML implementation - **W3C SCXML Tests**: 59 test files from official W3C SCXML conformance suite - **Internal Tests**: 444 comprehensive unit and integration tests - **Regression Suite**: 63 critical tests that must always pass ### Current Status (444 Total Tests) + - ✅ **294 tests passing (66.2%)** - Strong foundation with basic state machines working - ❌ **150 tests failing (33.8%)** - Blocked by missing executable content and data model features - 🔄 **34 tests in regression suite** - All basic state machine functionality validated ### Working Features (Supporting 294 Passing Tests) + - ✅ Basic state transitions and event processing - ✅ Compound states with hierarchical entry/exit - ✅ Parallel states with concurrent execution @@ -59,17 +62,20 @@ This document outlines the comprehensive plan to achieve near-complete SCXML (St ## Three-Phase Implementation Strategy ### Phase 1: Basic Executable Content (2-3 weeks) + **Objective**: Unlock 80-100 additional tests (30% improvement) **Target Coverage**: From 66% to ~85% -#### Features to Implement: +#### Features to Implement + - **`` Actions**: Execute actions when entering states - **`` Actions**: Execute actions when exiting states - **`` Elements**: Generate internal events for immediate processing - **`` Elements**: Debug logging with expression evaluation - **Action Execution Framework**: Infrastructure for processing nested executable content -#### Technical Architecture: +#### Technical Architecture + ```elixir # Parser Extensions defmodule SC.Parser.SCXML.ExecutableContent do @@ -100,24 +106,28 @@ defmodule SC.Interpreter.ActionExecutor do end ``` -#### Expected Outcomes: +#### Expected Outcomes + - **~374 tests passing (~84%)** - Up from 294 tests - **~70 tests failing** - Down from 150 tests - **SCION Compatibility**: ~90% of basic SCXML functionality - **Regression Suite**: Expand to ~100+ validated tests ### Phase 2: Data Model & Expression Evaluation (4-6 weeks) + **Objective**: Unlock 50-70 additional tests (25% improvement) **Target Coverage**: From ~85% to ~95% -#### Features to Implement: +#### Features to Implement + - **`` Structure**: Root container for state machine variables - **`` Elements**: Variable declaration and initialization - **`` Actions**: Dynamic variable assignment - **Enhanced Expression Engine**: Full JavaScript expression evaluation with datamodel access - **Variable Scoping**: Proper variable lifecycle and scoping per SCXML specification -#### Technical Architecture: +#### Technical Architecture + ```elixir # Data Model Support defmodule SC.DataModel do @@ -142,24 +152,28 @@ defmodule SC.JSEngine do end ``` -#### Expected Outcomes: +#### Expected Outcomes + - **~420 tests passing (~95%)** - Near-complete SCXML support - **~24 tests failing** - Only advanced features missing - **W3C Compliance**: High conformance to SCXML specification - **Production Ready**: Full datamodel and expression capabilities ### Phase 3: Advanced Features (2-3 weeks) + **Objective**: Achieve comprehensive SCXML support (98%+ coverage) **Target Coverage**: From ~95% to ~98%+ -#### Features to Implement: +#### Features to Implement + - **`` States**: State history preservation and restoration - **`` Elements**: External event sending with scheduling - **`` -**send_idlocation (1 test blocked)** +#### send_idlocation (1 test blocked) + - Dynamic event targeting - Low priority due to single test impact ## Implementation Priority Recommendations ### Phase 1: Basic Executable Content (Unlocks ~100+ tests) + 1. **Parser changes**: Add support for `onentry`, `onexit`, `log`, `raise` elements 2. **Simple expression evaluator**: Handle string literals and basic expressions 3. **Action execution**: Integrate action execution into interpreter transitions @@ -92,6 +107,7 @@ These are the most blocking features - they appear in most failing tests: **Tests unlocked**: ~120-140 tests (major improvement) ### Phase 2: Data Model Foundation (Unlocks remaining failing tests) + 1. **Data model implementation**: Variable storage and scoping 2. **Expression evaluation**: JavaScript/ECMAScript expression support 3. **Assignment actions**: Variable manipulation via `assign` elements @@ -101,6 +117,7 @@ These are the most blocking features - they appear in most failing tests: **Tests unlocked**: ~100+ additional tests ### Phase 3: Advanced Features (Polish and edge cases) + 1. **History states**: State history tracking and restoration 2. **Advanced transitions**: Internal and targetless transitions 3. **Send elements**: External event sending with delays @@ -112,17 +129,20 @@ These are the most blocking features - they appear in most failing tests: ## Technical Architecture Changes Needed ### Parser Enhancements + - Extend `SC.Parser.SCXML.Handler` to handle executable content elements - Add data structures for actions in `SC.State` and `SC.Document` - Parse expression attributes and script content ### Interpreter Enhancements + - Add action execution during state transitions - Implement data model context/scoping - Add internal event queue for `raise` events - Enhance transition logic for internal/targetless transitions ### New Modules Needed + - `SC.DataModel` - Variable storage and management - `SC.ExpressionEvaluator` - Expression parsing and evaluation - `SC.ActionExecutor` - Execute onentry/onexit/transition actions @@ -136,4 +156,4 @@ These are the most blocking features - they appear in most failing tests: ## Conclusion -Implementing **Phase 1 (Basic Executable Content)** would provide the highest ROI, unlocking approximately 25-30% more tests with moderate implementation complexity. The data model (Phase 2) is essential for full SCXML compliance but represents the highest complexity challenge. \ No newline at end of file +Implementing **Phase 1 (Basic Executable Content)** would provide the highest ROI, unlocking approximately 25-30% more tests with moderate implementation complexity. The data model (Phase 2) is essential for full SCXML compliance but represents the highest complexity challenge. diff --git a/documentation/implementation_roadmap.md b/documentation/implementation_roadmap.md index 2fc2e39..aab666b 100644 --- a/documentation/implementation_roadmap.md +++ b/documentation/implementation_roadmap.md @@ -7,16 +7,19 @@ Analysis of 444 tests (294 passing, 150 failing) reveals that **13 missing SCXML ## Feature Impact Analysis ### Tier 1: High Impact, Medium Complexity (120+ tests) + 1. **onentry_actions** (78 tests) - Execute actions when entering states 2. **log_elements** (72 tests) - Simple logging within executable content 3. **raise_elements** (48 tests) - Generate internal events 4. **onexit_actions** (21 tests) - Execute actions when exiting states ### Tier 2: High Impact, High Complexity (110+ tests) + 1. **datamodel + data_elements** (64 tests each) - Variable storage and management 2. **assign_elements** (48 tests) - Variable assignment actions ### Tier 3: Medium Impact, Various Complexity (50+ tests) + 1. **send_elements** (34 tests) - Event sending with delay support 2. **history_states** (12 tests) - State history preservation 3. **targetless_transitions** (10 tests) - Actions without state changes @@ -29,6 +32,7 @@ Analysis of 444 tests (294 passing, 150 failing) reveals that **13 missing SCXML ### Data Structure Extensions **SC.State** needs: + ```elixir defstruct [ # ... existing fields ... @@ -38,6 +42,7 @@ defstruct [ ``` **SC.Transition** needs: + ```elixir defstruct [ # ... existing fields ... @@ -47,6 +52,7 @@ defstruct [ ``` **New SC.Action** struct: + ```elixir defstruct [ type: nil, # :log | :raise | :assign | :send | :script @@ -58,6 +64,7 @@ defstruct [ ### Parser Extensions **SC.Parser.SCXML.Handler** needs cases for: + - `onentry` → collect child actions, add to state - `onexit` → collect child actions, add to state - `log` → create log action with expr/label attributes @@ -80,6 +87,7 @@ defstruct [ ### New Modules Required **SC.ActionExecutor**: + ```elixir def execute_actions(actions, context) do Enum.reduce(actions, context, &execute_single_action/2) @@ -95,7 +103,8 @@ end ``` **SC.ExpressionEvaluator** (Phase 2): -```elixir + +```elixir def evaluate(expr, data_model) do # Parse and evaluate JavaScript expressions # Return {:ok, value} | {:error, reason} @@ -103,6 +112,7 @@ end ``` **SC.DataModel** (Phase 2): + ```elixir def new(initial_data \\ %{}) do # Create new data model context @@ -120,19 +130,23 @@ end ## Implementation Phases ### Phase 1: Basic Executable Content (2-3 weeks) + **Goal**: Unlock ~80-100 tests with raise/onentry/onexit/log support **Week 1**: Parser extensions + - Add action parsing to SCXML handler - Extend state/transition data structures - Add basic action collection during parsing **Week 2**: Interpreter integration + - Implement ActionExecutor with raise/log support - Integrate action execution into state transitions - Add internal event queue for raised events **Week 3**: Testing and refinement + - Test against SCION action tests - Handle edge cases and error conditions - Documentation and cleanup @@ -140,19 +154,23 @@ end **Expected outcome**: ~66% → ~85% test pass rate ### Phase 2: Data Model (4-6 weeks) + **Goal**: Unlock remaining ~50-70 tests with full variable support **Weeks 1-2**: Expression evaluation foundation + - Research JavaScript expression parsing options - Implement basic expression evaluator - Support variable references and simple operations **Weeks 3-4**: Data model integration + - Implement SC.DataModel for variable storage - Add assign action support - Integrate with expression evaluator **Weeks 5-6**: Advanced features + - Enhanced expression support (objects, arrays, functions) - Integration testing with W3C mandatory tests - Performance optimization @@ -160,6 +178,7 @@ end **Expected outcome**: ~85% → ~95% test pass rate ### Phase 3: Advanced Features (2-3 weeks) + **Goal**: Polish and edge cases for remaining tests - History state implementation @@ -174,22 +193,27 @@ end ### Technical Risks **High Risk**: JavaScript expression evaluation + - *Mitigation*: Start with subset of expressions, expand gradually - *Alternative*: Use Elixir-native expression syntax initially **Medium Risk**: Action execution ordering and event processing + - *Mitigation*: Follow W3C specification exactly, extensive testing - *Reference*: SCION implementation patterns **Low Risk**: Parser extensions, data structure changes + - *Mitigation*: Incremental changes with test coverage ### Integration Risks **Data model performance**: Variable lookups in tight loops + - *Mitigation*: Optimize after correctness, consider ETS for large datasets **Memory usage**: Storing parsed actions and expressions + - *Mitigation*: Profile memory usage, optimize data structures ## Success Metrics @@ -207,4 +231,4 @@ end 3. **Week 2**: Add log element support for debugging 4. **Month 2**: Start Phase 2 planning and expression evaluation research -This roadmap provides a clear path to dramatically improve SCXML compliance while managing implementation complexity through incremental phases. \ No newline at end of file +This roadmap provides a clear path to dramatically improve SCXML compliance while managing implementation complexity through incremental phases. diff --git a/documentation/test_analysis_summary.md b/documentation/test_analysis_summary.md index 6aa22c1..a1c5934 100644 --- a/documentation/test_analysis_summary.md +++ b/documentation/test_analysis_summary.md @@ -1,6 +1,7 @@ # SCXML Test Suite Analysis Summary ## Current Status + - **Total Tests**: 444 (SCION + W3C test suites) - **Passing**: 294 (66.2%) - **Failing**: 150 (33.8%) @@ -9,6 +10,7 @@ ## Feature Analysis Results ### Top Missing Features by Test Impact + 1. **onentry_actions**: 78 tests blocked - Actions executed when entering states 2. **log_elements**: 72 tests blocked - Logging within executable content 3. **data_elements**: 64 tests blocked - Variable declarations in datamodel @@ -31,16 +33,19 @@ ### Implementation Priority **Phase 1 (High ROI)**: Basic executable content support + - Target: onentry_actions, log_elements, raise_elements, onexit_actions - Expected unlock: ~120+ additional tests (30% improvement) - Complexity: Medium (2-3 weeks) **Phase 2 (Full Compliance)**: Data model implementation + - Target: datamodel, data_elements, assign_elements - Expected unlock: ~100+ additional tests (25% improvement) - Complexity: High (4-6 weeks) **Phase 3 (Polish)**: Advanced features + - Target: history_states, send_elements, internal_transitions - Expected unlock: ~30+ remaining tests (7% improvement) - Complexity: Medium (2-3 weeks) @@ -48,7 +53,9 @@ ## Technical Requirements ### Parser Extensions Needed + Current parser must be extended to handle: + ```xml @@ -61,13 +68,16 @@ Current parser must be extended to handle: ``` ### Interpreter Enhancements Needed + Current interpreter must execute actions during transitions: + 1. Execute onexit actions of exiting states 2. Execute transition actions 3. Execute onentry actions of entering states 4. Process raised internal events in microsteps ### Architecture Changes Required + - **New data structures**: Action lists in states/transitions - **New modules**: ActionExecutor, ExpressionEvaluator, DataModel - **Enhanced execution**: Action integration in transition processing @@ -75,6 +85,7 @@ Current interpreter must execute actions during transitions: ## Example Test Case Analysis **Simple Raise Event Test** (`send1_test.exs`): + ```xml @@ -87,6 +98,7 @@ Current interpreter must execute actions during transitions: ``` **Expected Behavior**: + 1. Send event "t" → transition a→b 2. Execute raise action → generate internal "s" event 3. Process "s" event → transition b→c @@ -107,8 +119,9 @@ Current interpreter must execute actions during transitions: 5. **Maintain test-driven approach**: The comprehensive test suite provides excellent validation for each implementation step ## Files Created + - `/Users/johnnyt/repos/github/sc/feature_complexity_analysis.md` - Detailed feature analysis - `/Users/johnnyt/repos/github/sc/implementation_roadmap.md` - Technical implementation plan - `/Users/johnnyt/repos/github/sc/test_analysis_summary.md` - This summary document -This analysis provides a clear roadmap for improving SCXML compliance from 66% to 95%+ test coverage through systematic implementation of missing features. \ No newline at end of file +This analysis provides a clear roadmap for improving SCXML compliance from 66% to 95%+ test coverage through systematic implementation of missing features. From 6976c8d0560e90ea6a90af21fda02a4a7bbdfd49 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:33:07 -0600 Subject: [PATCH 06/11] Lints tests --- test/scion_tests/assign/assign_invalid_test.exs | 11 ++++++++++- .../assign/assign_obj_literal_test.exs | 11 ++++++++++- .../assign_current_small_step/test0_test.exs | 11 ++++++++++- .../assign_current_small_step/test1_test.exs | 9 ++++++++- .../assign_current_small_step/test2_test.exs | 9 ++++++++- .../assign_current_small_step/test3_test.exs | 11 ++++++++++- .../assign_current_small_step/test4_test.exs | 11 ++++++++++- .../cond_js/TestConditionalTransition_test.exs | 7 ++++++- test/scion_tests/data/data_invalid_test.exs | 10 +++++++++- test/scion_tests/data/data_obj_literal_test.exs | 10 +++++++++- test/scion_tests/error/error_test.exs | 11 ++++++++++- test/scion_tests/foreach/test1_test.exs | 11 ++++++++++- test/scion_tests/history/history3_test.exs | 8 +++++++- test/scion_tests/history/history4_test.exs | 8 +++++++- test/scion_tests/history/history4b_test.exs | 8 +++++++- test/scion_tests/history/history5_test.exs | 8 +++++++- test/scion_tests/history/history6_test.exs | 13 ++++++++++++- test/scion_tests/if_else/test0_test.exs | 12 +++++++++++- test/scion_tests/in/TestInPredicate_test.exs | 10 +++++++++- .../internal_transitions/test0_test.exs | 12 +++++++++++- .../internal_transitions/test1_test.exs | 13 ++++++++++++- test/scion_tests/more_parallel/test10_test.exs | 12 +++++++++++- test/scion_tests/more_parallel/test10b_test.exs | 12 +++++++++++- test/scion_tests/script/test0_test.exs | 9 ++++++++- test/scion_tests/script/test1_test.exs | 9 ++++++++- test/scion_tests/script/test2_test.exs | 9 ++++++++- test/scion_tests/script_src/test0_test.exs | 9 ++++++++- test/scion_tests/script_src/test1_test.exs | 10 +++++++++- test/scion_tests/script_src/test2_test.exs | 9 ++++++++- test/scion_tests/script_src/test3_test.exs | 9 ++++++++- test/scion_tests/send_data/send1_test.exs | 10 +++++++++- test/scion_tests/send_idlocation/test0_test.exs | 13 ++++++++++++- test/scion_tests/send_internal/test0_test.exs | 10 +++++++++- .../targetless_transition/test0_test.exs | 10 +++++++++- .../targetless_transition/test1_test.exs | 10 +++++++++- .../targetless_transition/test2_test.exs | 10 +++++++++- .../targetless_transition/test3_test.exs | 12 +++++++++++- .../test158_test.exs | 11 ++++++++++- .../test159_test.exs | 13 ++++++++++++- .../SelectingTransitions/test403a_test.exs | 12 +++++++++++- .../SelectingTransitions/test403b_test.exs | 16 +++++++++++++++- .../SelectingTransitions/test403c_test.exs | 17 ++++++++++++++++- .../SelectingTransitions/test404_test.exs | 12 +++++++++++- .../SelectingTransitions/test405_test.exs | 13 ++++++++++++- .../SelectingTransitions/test406_test.exs | 12 +++++++++++- .../SelectingTransitions/test407_test.exs | 13 ++++++++++++- .../SelectingTransitions/test409_test.exs | 13 ++++++++++++- .../SelectingTransitions/test411_test.exs | 12 +++++++++++- .../SelectingTransitions/test412_test.exs | 12 +++++++++++- .../SelectingTransitions/test413_test.exs | 11 ++++++++++- .../SelectingTransitions/test416_test.exs | 10 +++++++++- .../SelectingTransitions/test417_test.exs | 11 ++++++++++- .../SelectingTransitions/test419_test.exs | 10 +++++++++- .../SelectingTransitions/test421_test.exs | 11 ++++++++++- .../SelectingTransitions/test422_test.exs | 15 ++++++++++++++- .../SelectingTransitions/test423_test.exs | 10 +++++++++- .../SelectingTransitions/test503_test.exs | 15 ++++++++++++++- .../SelectingTransitions/test504_test.exs | 15 ++++++++++++++- .../SelectingTransitions/test505_test.exs | 15 ++++++++++++++- .../SelectingTransitions/test506_test.exs | 16 +++++++++++++++- .../SelectingTransitions/test533_test.exs | 16 +++++++++++++++- .../scxml_tests/mandatory/data/test276_test.exs | 8 +++++++- .../mandatory/data/test276sub1_test.exs | 10 +++++++++- .../scxml_tests/mandatory/data/test277_test.exs | 13 ++++++++++++- .../scxml_tests/mandatory/data/test279_test.exs | 11 ++++++++++- .../scxml_tests/mandatory/data/test280_test.exs | 12 +++++++++++- .../scxml_tests/mandatory/data/test550_test.exs | 11 ++++++++++- .../scxml_tests/mandatory/data/test551_test.exs | 11 ++++++++++- .../mandatory/events/test396_test.exs | 10 +++++++++- .../mandatory/events/test399_test.exs | 11 ++++++++++- .../mandatory/events/test401_test.exs | 10 +++++++++- .../mandatory/events/test402_test.exs | 12 +++++++++++- .../mandatory/final/test372_test.exs | 15 ++++++++++++++- .../mandatory/final/test570_test.exs | 17 ++++++++++++++++- .../mandatory/foreach/test150_test.exs | 12 +++++++++++- .../mandatory/foreach/test151_test.exs | 12 +++++++++++- .../mandatory/foreach/test152_test.exs | 13 ++++++++++++- .../mandatory/foreach/test153_test.exs | 12 +++++++++++- .../mandatory/foreach/test155_test.exs | 12 +++++++++++- .../mandatory/foreach/test156_test.exs | 12 +++++++++++- .../mandatory/foreach/test525_test.exs | 12 +++++++++++- .../mandatory/history/test387_test.exs | 12 +++++++++++- .../mandatory/history/test388_test.exs | 16 +++++++++++++++- .../mandatory/history/test579_test.exs | 17 ++++++++++++++++- .../mandatory/history/test580_test.exs | 17 ++++++++++++++++- test/scxml_tests/mandatory/if/test147_test.exs | 13 ++++++++++++- test/scxml_tests/mandatory/if/test148_test.exs | 13 ++++++++++++- test/scxml_tests/mandatory/if/test149_test.exs | 13 ++++++++++++- .../mandatory/onentry/test375_test.exs | 9 ++++++++- .../mandatory/onentry/test376_test.exs | 13 ++++++++++++- .../mandatory/onexit/test377_test.exs | 10 +++++++++- .../mandatory/onexit/test378_test.exs | 14 +++++++++++++- .../mandatory/raise/test144_test.exs | 9 ++++++++- .../mandatory/scxml/test355_test.exs | 8 +++++++- .../mandatory/scxml/test576_test.exs | 12 +++++++++++- .../mandatory/state/test364_test.exs | 13 ++++++++++++- 96 files changed, 1017 insertions(+), 96 deletions(-) diff --git a/test/scion_tests/assign/assign_invalid_test.exs b/test/scion_tests/assign/assign_invalid_test.exs index 3362b3e..5c2893b 100644 --- a/test/scion_tests/assign/assign_invalid_test.exs +++ b/test/scion_tests/assign/assign_invalid_test.exs @@ -1,7 +1,16 @@ defmodule SCIONTest.Assign.AssignInvalidTest do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag spec: "assign" test "assign_invalid" do xml = """ diff --git a/test/scion_tests/assign/assign_obj_literal_test.exs b/test/scion_tests/assign/assign_obj_literal_test.exs index 17fba98..3a46e0e 100644 --- a/test/scion_tests/assign/assign_obj_literal_test.exs +++ b/test/scion_tests/assign/assign_obj_literal_test.exs @@ -1,7 +1,16 @@ defmodule SCIONTest.Assign.AssignObjLiteralTest do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag spec: "assign" test "assign_obj_literal" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test0_test.exs b/test/scion_tests/assign_current_small_step/test0_test.exs index 78f044f..76736f2 100644 --- a/test/scion_tests/assign_current_small_step/test0_test.exs +++ b/test/scion_tests/assign_current_small_step/test0_test.exs @@ -1,7 +1,16 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test0Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :onentry_actions, :script_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :onentry_actions, + :script_elements + ] @tag spec: "assign_current_small_step" test "test0" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test1_test.exs b/test/scion_tests/assign_current_small_step/test1_test.exs index 76961d4..7e1a92e 100644 --- a/test/scion_tests/assign_current_small_step/test1_test.exs +++ b/test/scion_tests/assign_current_small_step/test1_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test1Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions + ] @tag spec: "assign_current_small_step" test "test1" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test2_test.exs b/test/scion_tests/assign_current_small_step/test2_test.exs index 5473cc6..c26e6e7 100644 --- a/test/scion_tests/assign_current_small_step/test2_test.exs +++ b/test/scion_tests/assign_current_small_step/test2_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test2Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions + ] @tag spec: "assign_current_small_step" test "test2" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test3_test.exs b/test/scion_tests/assign_current_small_step/test3_test.exs index 61a9552..15b4ecc 100644 --- a/test/scion_tests/assign_current_small_step/test3_test.exs +++ b/test/scion_tests/assign_current_small_step/test3_test.exs @@ -1,7 +1,16 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test3Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :parallel_states] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :parallel_states + ] @tag spec: "assign_current_small_step" test "test3" do xml = """ diff --git a/test/scion_tests/assign_current_small_step/test4_test.exs b/test/scion_tests/assign_current_small_step/test4_test.exs index cef69d2..e8af27f 100644 --- a/test/scion_tests/assign_current_small_step/test4_test.exs +++ b/test/scion_tests/assign_current_small_step/test4_test.exs @@ -1,7 +1,16 @@ defmodule SCIONTest.AssignCurrentSmallStep.Test4Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :log_elements, + :onentry_actions + ] @tag spec: "assign_current_small_step" test "test4" do xml = """ diff --git a/test/scion_tests/cond_js/TestConditionalTransition_test.exs b/test/scion_tests/cond_js/TestConditionalTransition_test.exs index d7a248b..af63249 100644 --- a/test/scion_tests/cond_js/TestConditionalTransition_test.exs +++ b/test/scion_tests/cond_js/TestConditionalTransition_test.exs @@ -1,7 +1,12 @@ defmodule SCIONTest.CondJs.TestConditionalTransitionTest do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :event_transitions, :initial_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :event_transitions, + :initial_elements + ] @tag spec: "cond_js" test "TestConditionalTransition" do xml = """ diff --git a/test/scion_tests/data/data_invalid_test.exs b/test/scion_tests/data/data_invalid_test.exs index 00a6381..478a0f2 100644 --- a/test/scion_tests/data/data_invalid_test.exs +++ b/test/scion_tests/data/data_invalid_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.Data.DataInvalidTest do use SC.Case @tag :scion - @tag required_features: [:basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :basic_states, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag spec: "data" test "data_invalid" do xml = """ diff --git a/test/scion_tests/data/data_obj_literal_test.exs b/test/scion_tests/data/data_obj_literal_test.exs index 0cf29c3..8981002 100644 --- a/test/scion_tests/data/data_obj_literal_test.exs +++ b/test/scion_tests/data/data_obj_literal_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.Data.DataObjLiteralTest do use SC.Case @tag :scion - @tag required_features: [:basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :basic_states, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag spec: "data" test "data_obj_literal" do xml = """ diff --git a/test/scion_tests/error/error_test.exs b/test/scion_tests/error/error_test.exs index e73d941..5bc826a 100644 --- a/test/scion_tests/error/error_test.exs +++ b/test/scion_tests/error/error_test.exs @@ -1,7 +1,16 @@ defmodule SCIONTest.Error.ErrorTest do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :script_elements, :targetless_transitions] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :script_elements, + :targetless_transitions + ] @tag spec: "error" test "error" do xml = """ diff --git a/test/scion_tests/foreach/test1_test.exs b/test/scion_tests/foreach/test1_test.exs index aa280b4..dfc64f0 100644 --- a/test/scion_tests/foreach/test1_test.exs +++ b/test/scion_tests/foreach/test1_test.exs @@ -1,7 +1,16 @@ defmodule SCIONTest.Foreach.Test1Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :log_elements, + :onentry_actions + ] @tag spec: "foreach" test "test1" do xml = """ diff --git a/test/scion_tests/history/history3_test.exs b/test/scion_tests/history/history3_test.exs index e87694f..9e86eaa 100644 --- a/test/scion_tests/history/history3_test.exs +++ b/test/scion_tests/history/history3_test.exs @@ -1,7 +1,13 @@ defmodule SCIONTest.History.History3Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :history_states, + :parallel_states + ] @tag spec: "history" test "history3" do xml = """ diff --git a/test/scion_tests/history/history4_test.exs b/test/scion_tests/history/history4_test.exs index 4608bda..afe6a5b 100644 --- a/test/scion_tests/history/history4_test.exs +++ b/test/scion_tests/history/history4_test.exs @@ -1,7 +1,13 @@ defmodule SCIONTest.History.History4Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :history_states, + :parallel_states + ] @tag spec: "history" test "history4" do xml = """ diff --git a/test/scion_tests/history/history4b_test.exs b/test/scion_tests/history/history4b_test.exs index d11544a..758b8ac 100644 --- a/test/scion_tests/history/history4b_test.exs +++ b/test/scion_tests/history/history4b_test.exs @@ -1,7 +1,13 @@ defmodule SCIONTest.History.History4bTest do use SC.Case @tag :scion - @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :history_states, + :parallel_states + ] @tag spec: "history" test "history4b" do xml = """ diff --git a/test/scion_tests/history/history5_test.exs b/test/scion_tests/history/history5_test.exs index 0d79444..5cd34de 100644 --- a/test/scion_tests/history/history5_test.exs +++ b/test/scion_tests/history/history5_test.exs @@ -1,7 +1,13 @@ defmodule SCIONTest.History.History5Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :compound_states, :event_transitions, :history_states, :parallel_states] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :history_states, + :parallel_states + ] @tag spec: "history" test "history5" do xml = """ diff --git a/test/scion_tests/history/history6_test.exs b/test/scion_tests/history/history6_test.exs index a50d218..0ceba58 100644 --- a/test/scion_tests/history/history6_test.exs +++ b/test/scion_tests/history/history6_test.exs @@ -1,7 +1,18 @@ defmodule SCIONTest.History.History6Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :history_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :history_states, + :log_elements, + :onentry_actions + ] @tag spec: "history" test "history6" do xml = """ diff --git a/test/scion_tests/if_else/test0_test.exs b/test/scion_tests/if_else/test0_test.exs index b1bb4ac..711ef18 100644 --- a/test/scion_tests/if_else/test0_test.exs +++ b/test/scion_tests/if_else/test0_test.exs @@ -1,7 +1,17 @@ defmodule SCIONTest.IfElse.Test0Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :onentry_actions, :onexit_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :log_elements, + :onentry_actions, + :onexit_actions + ] @tag spec: "if_else" test "test0" do xml = """ diff --git a/test/scion_tests/in/TestInPredicate_test.exs b/test/scion_tests/in/TestInPredicate_test.exs index a1732b1..1233fa6 100644 --- a/test/scion_tests/in/TestInPredicate_test.exs +++ b/test/scion_tests/in/TestInPredicate_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.In.TestInPredicateTest do use SC.Case @tag :scion - @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :initial_elements, :parallel_states, :raise_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :conditional_transitions, + :event_transitions, + :initial_elements, + :parallel_states, + :raise_elements + ] @tag spec: "in" test "TestInPredicate" do xml = """ diff --git a/test/scion_tests/internal_transitions/test0_test.exs b/test/scion_tests/internal_transitions/test0_test.exs index 63beb72..aeed596 100644 --- a/test/scion_tests/internal_transitions/test0_test.exs +++ b/test/scion_tests/internal_transitions/test0_test.exs @@ -1,7 +1,17 @@ defmodule SCIONTest.InternalTransitions.Test0Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :internal_transitions, :onentry_actions, :onexit_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :internal_transitions, + :onentry_actions, + :onexit_actions + ] @tag spec: "internal_transitions" test "test0" do xml = """ diff --git a/test/scion_tests/internal_transitions/test1_test.exs b/test/scion_tests/internal_transitions/test1_test.exs index 4598c03..f17eddf 100644 --- a/test/scion_tests/internal_transitions/test1_test.exs +++ b/test/scion_tests/internal_transitions/test1_test.exs @@ -1,7 +1,18 @@ defmodule SCIONTest.InternalTransitions.Test1Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :internal_transitions, :onentry_actions, :onexit_actions, :parallel_states] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :internal_transitions, + :onentry_actions, + :onexit_actions, + :parallel_states + ] @tag spec: "internal_transitions" test "test1" do xml = """ diff --git a/test/scion_tests/more_parallel/test10_test.exs b/test/scion_tests/more_parallel/test10_test.exs index fd03e7a..6f7d7ee 100644 --- a/test/scion_tests/more_parallel/test10_test.exs +++ b/test/scion_tests/more_parallel/test10_test.exs @@ -1,7 +1,17 @@ defmodule SCIONTest.MoreParallel.Test10Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :onentry_actions, :onexit_actions, :parallel_states] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :onentry_actions, + :onexit_actions, + :parallel_states + ] @tag spec: "more_parallel" test "test10" do xml = """ diff --git a/test/scion_tests/more_parallel/test10b_test.exs b/test/scion_tests/more_parallel/test10b_test.exs index bd498c6..951f2e9 100644 --- a/test/scion_tests/more_parallel/test10b_test.exs +++ b/test/scion_tests/more_parallel/test10b_test.exs @@ -1,7 +1,17 @@ defmodule SCIONTest.MoreParallel.Test10bTest do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :onentry_actions, :onexit_actions, :parallel_states] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :onentry_actions, + :onexit_actions, + :parallel_states + ] @tag spec: "more_parallel" test "test10b" do xml = """ diff --git a/test/scion_tests/script/test0_test.exs b/test/scion_tests/script/test0_test.exs index c170905..fdc0601 100644 --- a/test/scion_tests/script/test0_test.exs +++ b/test/scion_tests/script/test0_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.Script.Test0Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :script_elements + ] @tag spec: "script" test "test0" do xml = """ diff --git a/test/scion_tests/script/test1_test.exs b/test/scion_tests/script/test1_test.exs index 9b3e827..4d448f6 100644 --- a/test/scion_tests/script/test1_test.exs +++ b/test/scion_tests/script/test1_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.Script.Test1Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :script_elements + ] @tag spec: "script" test "test1" do xml = """ diff --git a/test/scion_tests/script/test2_test.exs b/test/scion_tests/script/test2_test.exs index 57f8a15..fa85ca9 100644 --- a/test/scion_tests/script/test2_test.exs +++ b/test/scion_tests/script/test2_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.Script.Test2Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :script_elements + ] @tag spec: "script" test "test2" do xml = """ diff --git a/test/scion_tests/script_src/test0_test.exs b/test/scion_tests/script_src/test0_test.exs index 9360b57..0de3e5b 100644 --- a/test/scion_tests/script_src/test0_test.exs +++ b/test/scion_tests/script_src/test0_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.ScriptSrc.Test0Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :script_elements + ] @tag spec: "script_src" test "test0" do xml = """ diff --git a/test/scion_tests/script_src/test1_test.exs b/test/scion_tests/script_src/test1_test.exs index 2c000c0..20a3696 100644 --- a/test/scion_tests/script_src/test1_test.exs +++ b/test/scion_tests/script_src/test1_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.ScriptSrc.Test1Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :script_elements + ] @tag spec: "script_src" test "test1" do xml = """ diff --git a/test/scion_tests/script_src/test2_test.exs b/test/scion_tests/script_src/test2_test.exs index 71b8ab7..b87e4c5 100644 --- a/test/scion_tests/script_src/test2_test.exs +++ b/test/scion_tests/script_src/test2_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.ScriptSrc.Test2Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :script_elements + ] @tag spec: "script_src" test "test2" do xml = """ diff --git a/test/scion_tests/script_src/test3_test.exs b/test/scion_tests/script_src/test3_test.exs index e09e6ab..c469e39 100644 --- a/test/scion_tests/script_src/test3_test.exs +++ b/test/scion_tests/script_src/test3_test.exs @@ -1,7 +1,14 @@ defmodule SCIONTest.ScriptSrc.Test3Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :script_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :script_elements + ] @tag spec: "script_src" test "test3" do xml = """ diff --git a/test/scion_tests/send_data/send1_test.exs b/test/scion_tests/send_data/send1_test.exs index 537ab7f..1ba30e7 100644 --- a/test/scion_tests/send_data/send1_test.exs +++ b/test/scion_tests/send_data/send1_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.SendData.Send1Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :send_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :log_elements, + :send_elements + ] @tag spec: "send_data" test "send1" do xml = """ diff --git a/test/scion_tests/send_idlocation/test0_test.exs b/test/scion_tests/send_idlocation/test0_test.exs index 8af8b0d..b1709f0 100644 --- a/test/scion_tests/send_idlocation/test0_test.exs +++ b/test/scion_tests/send_idlocation/test0_test.exs @@ -1,7 +1,18 @@ defmodule SCIONTest.SendIdlocation.Test0Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements, :send_idlocation] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :send_elements, + :send_idlocation + ] @tag spec: "send_idlocation" test "test0" do xml = """ diff --git a/test/scion_tests/send_internal/test0_test.exs b/test/scion_tests/send_internal/test0_test.exs index b0ac33b..b4ba1d5 100644 --- a/test/scion_tests/send_internal/test0_test.exs +++ b/test/scion_tests/send_internal/test0_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.SendInternal.Test0Test do use SC.Case @tag :scion - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :send_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :log_elements, + :send_elements + ] @tag spec: "send_internal" test "test0" do xml = """ diff --git a/test/scion_tests/targetless_transition/test0_test.exs b/test/scion_tests/targetless_transition/test0_test.exs index aa5af9d..17b350c 100644 --- a/test/scion_tests/targetless_transition/test0_test.exs +++ b/test/scion_tests/targetless_transition/test0_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.TargetlessTransition.Test0Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :targetless_transitions + ] @tag spec: "targetless_transition" test "test0" do xml = """ diff --git a/test/scion_tests/targetless_transition/test1_test.exs b/test/scion_tests/targetless_transition/test1_test.exs index de40bb5..901ea5d 100644 --- a/test/scion_tests/targetless_transition/test1_test.exs +++ b/test/scion_tests/targetless_transition/test1_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.TargetlessTransition.Test1Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :targetless_transitions + ] @tag spec: "targetless_transition" test "test1" do xml = """ diff --git a/test/scion_tests/targetless_transition/test2_test.exs b/test/scion_tests/targetless_transition/test2_test.exs index 163f203..a862856 100644 --- a/test/scion_tests/targetless_transition/test2_test.exs +++ b/test/scion_tests/targetless_transition/test2_test.exs @@ -1,7 +1,15 @@ defmodule SCIONTest.TargetlessTransition.Test2Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :targetless_transitions + ] @tag spec: "targetless_transition" test "test2" do xml = """ diff --git a/test/scion_tests/targetless_transition/test3_test.exs b/test/scion_tests/targetless_transition/test3_test.exs index 16afc3d..4ae3bf1 100644 --- a/test/scion_tests/targetless_transition/test3_test.exs +++ b/test/scion_tests/targetless_transition/test3_test.exs @@ -1,7 +1,17 @@ defmodule SCIONTest.TargetlessTransition.Test3Test do use SC.Case @tag :scion - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :log_elements, :parallel_states, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :log_elements, + :parallel_states, + :targetless_transitions + ] @tag spec: "targetless_transition" test "test3" do xml = """ diff --git a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs index 0b3ac1d..36d0e34 100644 --- a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs +++ b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test158_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.EvaluationofExecutableContent.Test158 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :basic_states, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "EvaluationofExecutableContent" test "test158" do xml = """ diff --git a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs index c231f49..77cd5bf 100644 --- a/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs +++ b/test/scxml_tests/mandatory/EvaluationofExecutableContent/test159_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.EvaluationofExecutableContent.Test159 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :send_elements + ] @tag conformance: "mandatory", spec: "EvaluationofExecutableContent" test "test159" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs index ac63d29..2e82ac9 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test403a_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.SelectingTransitions.Test403a do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :conditional_transitions, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test403a" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs index 79e361e..289a7a4 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test403b_test.exs @@ -1,7 +1,21 @@ defmodule SCXMLTest.SelectingTransitions.Test403b do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :parallel_states, + :raise_elements, + :targetless_transitions + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test403b" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs index ed14609..21346a8 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test403c_test.exs @@ -1,7 +1,22 @@ defmodule SCXMLTest.SelectingTransitions.Test403c do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :parallel_states, + :raise_elements, + :send_elements, + :targetless_transitions + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test403c" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs index c7957f1..9a48468 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test404_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.SelectingTransitions.Test404 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :parallel_states, + :raise_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test404" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs index 7136c51..5d20298 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test405_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.SelectingTransitions.Test405 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :parallel_states, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test405" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs index aac0ed3..d9a5bc7 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test406_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.SelectingTransitions.Test406 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :parallel_states, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test406" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs index 515c3ac..92ef527 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test407_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.SelectingTransitions.Test407 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test407" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs index d4d7222..a4dcd07 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test409_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.SelectingTransitions.Test409 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :conditional_transitions, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test409" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs index 5f6b1f6..905ff27 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test411_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.SelectingTransitions.Test411 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :conditional_transitions, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test411" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs index a1762ad..8dec1cb 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test412_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.SelectingTransitions.Test412 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :initial_elements, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :initial_elements, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test412" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs index 56ee319..bbce31d 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test413_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.SelectingTransitions.Test413 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states] + @tag required_features: [ + :basic_states, + :compound_states, + :conditional_transitions, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :parallel_states + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test413" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs index 671446c..062b084 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test416_test.exs @@ -1,7 +1,15 @@ defmodule SCXMLTest.SelectingTransitions.Test416 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test416" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs index 72f030e..5005825 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test417_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.SelectingTransitions.Test417 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :parallel_states, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test417" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs index 844a453..8b70b2c 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test419_test.exs @@ -1,7 +1,15 @@ defmodule SCXMLTest.SelectingTransitions.Test419 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test419" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs index ea704af..af15961 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test421_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.SelectingTransitions.Test421 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test421" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs index 4ed3cae..ae22254 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test422_test.exs @@ -1,7 +1,20 @@ defmodule SCXMLTest.SelectingTransitions.Test422 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :send_elements, + :targetless_transitions + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test422" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs index 7290e94..bc60059 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test423_test.exs @@ -1,7 +1,15 @@ defmodule SCXMLTest.SelectingTransitions.Test423 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test423" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs index 88e164c..c8d2bcc 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test503_test.exs @@ -1,7 +1,20 @@ defmodule SCXMLTest.SelectingTransitions.Test503 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :raise_elements, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :raise_elements, + :targetless_transitions + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test503" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs index 4bc75c4..6bf42ac 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test504_test.exs @@ -1,7 +1,20 @@ defmodule SCXMLTest.SelectingTransitions.Test504 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :parallel_states, + :raise_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test504" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs index 5a4272b..9289cad 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test505_test.exs @@ -1,7 +1,20 @@ defmodule SCXMLTest.SelectingTransitions.Test505 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :internal_transitions, :log_elements, :onentry_actions, :onexit_actions, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :internal_transitions, + :log_elements, + :onentry_actions, + :onexit_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test505" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs index dea4d37..8baebe9 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test506_test.exs @@ -1,7 +1,21 @@ defmodule SCXMLTest.SelectingTransitions.Test506 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :internal_transitions, :log_elements, :onentry_actions, :onexit_actions, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :internal_transitions, + :log_elements, + :onentry_actions, + :onexit_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test506" do xml = """ diff --git a/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs b/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs index 1a3ca19..eb69c3b 100644 --- a/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs +++ b/test/scxml_tests/mandatory/SelectingTransitions/test533_test.exs @@ -1,7 +1,21 @@ defmodule SCXMLTest.SelectingTransitions.Test533 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :internal_transitions, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :internal_transitions, + :log_elements, + :onentry_actions, + :onexit_actions, + :parallel_states, + :raise_elements + ] @tag conformance: "mandatory", spec: "SelectingTransitions" test "test533" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test276_test.exs b/test/scxml_tests/mandatory/data/test276_test.exs index b836d08..dddeeec 100644 --- a/test/scxml_tests/mandatory/data/test276_test.exs +++ b/test/scxml_tests/mandatory/data/test276_test.exs @@ -1,7 +1,13 @@ defmodule SCXMLTest.Data.Test276 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "data" test "test276" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test276sub1_test.exs b/test/scxml_tests/mandatory/data/test276sub1_test.exs index 3052bf6..4280ae3 100644 --- a/test/scxml_tests/mandatory/data/test276sub1_test.exs +++ b/test/scxml_tests/mandatory/data/test276sub1_test.exs @@ -1,7 +1,15 @@ defmodule SCXMLTest.Data.Test276sub1 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :send_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :send_elements + ] @tag conformance: "mandatory", spec: "data" test "test276sub1" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test277_test.exs b/test/scxml_tests/mandatory/data/test277_test.exs index 860b7ff..25f522a 100644 --- a/test/scxml_tests/mandatory/data/test277_test.exs +++ b/test/scxml_tests/mandatory/data/test277_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.Data.Test277 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "data" test "test277" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test279_test.exs b/test/scxml_tests/mandatory/data/test279_test.exs index 43ed5b5..4f56e36 100644 --- a/test/scxml_tests/mandatory/data/test279_test.exs +++ b/test/scxml_tests/mandatory/data/test279_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.Data.Test279 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "data" test "test279" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test280_test.exs b/test/scxml_tests/mandatory/data/test280_test.exs index 369b891..5c819ef 100644 --- a/test/scxml_tests/mandatory/data/test280_test.exs +++ b/test/scxml_tests/mandatory/data/test280_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Data.Test280 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "data" test "test280" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test550_test.exs b/test/scxml_tests/mandatory/data/test550_test.exs index cb49baf..877ef9e 100644 --- a/test/scxml_tests/mandatory/data/test550_test.exs +++ b/test/scxml_tests/mandatory/data/test550_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.Data.Test550 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "data" test "test550" do xml = """ diff --git a/test/scxml_tests/mandatory/data/test551_test.exs b/test/scxml_tests/mandatory/data/test551_test.exs index 7348525..4ca455b 100644 --- a/test/scxml_tests/mandatory/data/test551_test.exs +++ b/test/scxml_tests/mandatory/data/test551_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.Data.Test551 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "data" test "test551" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test396_test.exs b/test/scxml_tests/mandatory/events/test396_test.exs index d5cfccd..a8fff73 100644 --- a/test/scxml_tests/mandatory/events/test396_test.exs +++ b/test/scxml_tests/mandatory/events/test396_test.exs @@ -1,7 +1,15 @@ defmodule SCXMLTest.Events.Test396 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :conditional_transitions, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "events" test "test396" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test399_test.exs b/test/scxml_tests/mandatory/events/test399_test.exs index 0d72b0a..5262172 100644 --- a/test/scxml_tests/mandatory/events/test399_test.exs +++ b/test/scxml_tests/mandatory/events/test399_test.exs @@ -1,7 +1,16 @@ defmodule SCXMLTest.Events.Test399 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "events" test "test399" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test401_test.exs b/test/scxml_tests/mandatory/events/test401_test.exs index fe755ca..2bce49e 100644 --- a/test/scxml_tests/mandatory/events/test401_test.exs +++ b/test/scxml_tests/mandatory/events/test401_test.exs @@ -1,7 +1,15 @@ defmodule SCXMLTest.Events.Test401 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :send_elements + ] @tag conformance: "mandatory", spec: "events" test "test401" do xml = """ diff --git a/test/scxml_tests/mandatory/events/test402_test.exs b/test/scxml_tests/mandatory/events/test402_test.exs index 51d6b30..ed0d53a 100644 --- a/test/scxml_tests/mandatory/events/test402_test.exs +++ b/test/scxml_tests/mandatory/events/test402_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Events.Test402 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "events" test "test402" do xml = """ diff --git a/test/scxml_tests/mandatory/final/test372_test.exs b/test/scxml_tests/mandatory/final/test372_test.exs index 3c54307..3a8faa6 100644 --- a/test/scxml_tests/mandatory/final/test372_test.exs +++ b/test/scxml_tests/mandatory/final/test372_test.exs @@ -1,7 +1,20 @@ defmodule SCXMLTest.Final.Test372 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :send_elements + ] @tag conformance: "mandatory", spec: "final" test "test372" do xml = """ diff --git a/test/scxml_tests/mandatory/final/test570_test.exs b/test/scxml_tests/mandatory/final/test570_test.exs index 29205e5..9e7b4ad 100644 --- a/test/scxml_tests/mandatory/final/test570_test.exs +++ b/test/scxml_tests/mandatory/final/test570_test.exs @@ -1,7 +1,22 @@ defmodule SCXMLTest.Final.Test570 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements, :targetless_transitions] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :parallel_states, + :raise_elements, + :send_elements, + :targetless_transitions + ] @tag conformance: "mandatory", spec: "final" test "test570" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test150_test.exs b/test/scxml_tests/mandatory/foreach/test150_test.exs index d984cf2..160f11f 100644 --- a/test/scxml_tests/mandatory/foreach/test150_test.exs +++ b/test/scxml_tests/mandatory/foreach/test150_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Foreach.Test150 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "foreach" test "test150" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test151_test.exs b/test/scxml_tests/mandatory/foreach/test151_test.exs index 0b70776..b20d115 100644 --- a/test/scxml_tests/mandatory/foreach/test151_test.exs +++ b/test/scxml_tests/mandatory/foreach/test151_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Foreach.Test151 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "foreach" test "test151" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test152_test.exs b/test/scxml_tests/mandatory/foreach/test152_test.exs index 65c5a42..e57d6b8 100644 --- a/test/scxml_tests/mandatory/foreach/test152_test.exs +++ b/test/scxml_tests/mandatory/foreach/test152_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.Foreach.Test152 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "foreach" test "test152" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test153_test.exs b/test/scxml_tests/mandatory/foreach/test153_test.exs index 9dfca2d..c44d846 100644 --- a/test/scxml_tests/mandatory/foreach/test153_test.exs +++ b/test/scxml_tests/mandatory/foreach/test153_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Foreach.Test153 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "foreach" test "test153" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test155_test.exs b/test/scxml_tests/mandatory/foreach/test155_test.exs index 70ab8ba..b8ab2b7 100644 --- a/test/scxml_tests/mandatory/foreach/test155_test.exs +++ b/test/scxml_tests/mandatory/foreach/test155_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Foreach.Test155 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "foreach" test "test155" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test156_test.exs b/test/scxml_tests/mandatory/foreach/test156_test.exs index e0c49d6..652fb66 100644 --- a/test/scxml_tests/mandatory/foreach/test156_test.exs +++ b/test/scxml_tests/mandatory/foreach/test156_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Foreach.Test156 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "foreach" test "test156" do xml = """ diff --git a/test/scxml_tests/mandatory/foreach/test525_test.exs b/test/scxml_tests/mandatory/foreach/test525_test.exs index c32a993..82cf2ee 100644 --- a/test/scxml_tests/mandatory/foreach/test525_test.exs +++ b/test/scxml_tests/mandatory/foreach/test525_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Foreach.Test525 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "foreach" test "test525" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test387_test.exs b/test/scxml_tests/mandatory/history/test387_test.exs index 3d9ab40..4990487 100644 --- a/test/scxml_tests/mandatory/history/test387_test.exs +++ b/test/scxml_tests/mandatory/history/test387_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.History.Test387 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :history_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :history_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "history" test "test387" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test388_test.exs b/test/scxml_tests/mandatory/history/test388_test.exs index 705a40f..4068780 100644 --- a/test/scxml_tests/mandatory/history/test388_test.exs +++ b/test/scxml_tests/mandatory/history/test388_test.exs @@ -1,7 +1,21 @@ defmodule SCXMLTest.History.Test388 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :compound_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :history_states, :log_elements, :onentry_actions, :raise_elements, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :compound_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :history_states, + :log_elements, + :onentry_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "history" test "test388" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test579_test.exs b/test/scxml_tests/mandatory/history/test579_test.exs index ba674d5..567c458 100644 --- a/test/scxml_tests/mandatory/history/test579_test.exs +++ b/test/scxml_tests/mandatory/history/test579_test.exs @@ -1,7 +1,22 @@ defmodule SCXMLTest.History.Test579 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :history_states, :initial_elements, :log_elements, :onentry_actions, :onexit_actions, :raise_elements, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :history_states, + :initial_elements, + :log_elements, + :onentry_actions, + :onexit_actions, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "history" test "test579" do xml = """ diff --git a/test/scxml_tests/mandatory/history/test580_test.exs b/test/scxml_tests/mandatory/history/test580_test.exs index b4cb7ce..09db8eb 100644 --- a/test/scxml_tests/mandatory/history/test580_test.exs +++ b/test/scxml_tests/mandatory/history/test580_test.exs @@ -1,7 +1,22 @@ defmodule SCXMLTest.History.Test580 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :history_states, :initial_elements, :log_elements, :onentry_actions, :onexit_actions, :parallel_states, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :history_states, + :initial_elements, + :log_elements, + :onentry_actions, + :onexit_actions, + :parallel_states, + :send_elements + ] @tag conformance: "mandatory", spec: "history" test "test580" do xml = """ diff --git a/test/scxml_tests/mandatory/if/test147_test.exs b/test/scxml_tests/mandatory/if/test147_test.exs index 05e26c9..969cfd5 100644 --- a/test/scxml_tests/mandatory/if/test147_test.exs +++ b/test/scxml_tests/mandatory/if/test147_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.If.Test147 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "if" test "test147" do xml = """ diff --git a/test/scxml_tests/mandatory/if/test148_test.exs b/test/scxml_tests/mandatory/if/test148_test.exs index 7047a83..aff5432 100644 --- a/test/scxml_tests/mandatory/if/test148_test.exs +++ b/test/scxml_tests/mandatory/if/test148_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.If.Test148 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "if" test "test148" do xml = """ diff --git a/test/scxml_tests/mandatory/if/test149_test.exs b/test/scxml_tests/mandatory/if/test149_test.exs index 5f3b5f5..7b83c43 100644 --- a/test/scxml_tests/mandatory/if/test149_test.exs +++ b/test/scxml_tests/mandatory/if/test149_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.If.Test149 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "if" test "test149" do xml = """ diff --git a/test/scxml_tests/mandatory/onentry/test375_test.exs b/test/scxml_tests/mandatory/onentry/test375_test.exs index d8af5d7..90d7e76 100644 --- a/test/scxml_tests/mandatory/onentry/test375_test.exs +++ b/test/scxml_tests/mandatory/onentry/test375_test.exs @@ -1,7 +1,14 @@ defmodule SCXMLTest.Onentry.Test375 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "onentry" test "test375" do xml = """ diff --git a/test/scxml_tests/mandatory/onentry/test376_test.exs b/test/scxml_tests/mandatory/onentry/test376_test.exs index 231549f..5d7df3c 100644 --- a/test/scxml_tests/mandatory/onentry/test376_test.exs +++ b/test/scxml_tests/mandatory/onentry/test376_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.Onentry.Test376 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :send_elements + ] @tag conformance: "mandatory", spec: "onentry" test "test376" do xml = """ diff --git a/test/scxml_tests/mandatory/onexit/test377_test.exs b/test/scxml_tests/mandatory/onexit/test377_test.exs index efb723b..e9c1593 100644 --- a/test/scxml_tests/mandatory/onexit/test377_test.exs +++ b/test/scxml_tests/mandatory/onexit/test377_test.exs @@ -1,7 +1,15 @@ defmodule SCXMLTest.Onexit.Test377 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :raise_elements] + @tag required_features: [ + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "onexit" test "test377" do xml = """ diff --git a/test/scxml_tests/mandatory/onexit/test378_test.exs b/test/scxml_tests/mandatory/onexit/test378_test.exs index 2ef7982..151b80d 100644 --- a/test/scxml_tests/mandatory/onexit/test378_test.exs +++ b/test/scxml_tests/mandatory/onexit/test378_test.exs @@ -1,7 +1,19 @@ defmodule SCXMLTest.Onexit.Test378 do use SC.Case @tag :scxml_w3 - @tag required_features: [:assign_elements, :basic_states, :conditional_transitions, :data_elements, :datamodel, :event_transitions, :final_states, :log_elements, :onentry_actions, :onexit_actions, :send_elements] + @tag required_features: [ + :assign_elements, + :basic_states, + :conditional_transitions, + :data_elements, + :datamodel, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :onexit_actions, + :send_elements + ] @tag conformance: "mandatory", spec: "onexit" test "test378" do xml = """ diff --git a/test/scxml_tests/mandatory/raise/test144_test.exs b/test/scxml_tests/mandatory/raise/test144_test.exs index 8f1b180..611b07c 100644 --- a/test/scxml_tests/mandatory/raise/test144_test.exs +++ b/test/scxml_tests/mandatory/raise/test144_test.exs @@ -1,7 +1,14 @@ defmodule SCXMLTest.Raise.Test144 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :raise_elements] + @tag required_features: [ + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :raise_elements + ] @tag conformance: "mandatory", spec: "raise" test "test144" do xml = """ diff --git a/test/scxml_tests/mandatory/scxml/test355_test.exs b/test/scxml_tests/mandatory/scxml/test355_test.exs index caae6f0..b2fcdcb 100644 --- a/test/scxml_tests/mandatory/scxml/test355_test.exs +++ b/test/scxml_tests/mandatory/scxml/test355_test.exs @@ -1,7 +1,13 @@ defmodule SCXMLTest.Scxml.Test355 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :event_transitions, :final_states, :log_elements, :onentry_actions] + @tag required_features: [ + :basic_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions + ] @tag conformance: "mandatory", spec: "scxml" test "test355" do xml = """ diff --git a/test/scxml_tests/mandatory/scxml/test576_test.exs b/test/scxml_tests/mandatory/scxml/test576_test.exs index b24169c..861703b 100644 --- a/test/scxml_tests/mandatory/scxml/test576_test.exs +++ b/test/scxml_tests/mandatory/scxml/test576_test.exs @@ -1,7 +1,17 @@ defmodule SCXMLTest.Scxml.Test576 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :log_elements, + :onentry_actions, + :parallel_states, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "scxml" test "test576" do xml = """ diff --git a/test/scxml_tests/mandatory/state/test364_test.exs b/test/scxml_tests/mandatory/state/test364_test.exs index 385241f..c227947 100644 --- a/test/scxml_tests/mandatory/state/test364_test.exs +++ b/test/scxml_tests/mandatory/state/test364_test.exs @@ -1,7 +1,18 @@ defmodule SCXMLTest.State.Test364 do use SC.Case @tag :scxml_w3 - @tag required_features: [:basic_states, :compound_states, :event_transitions, :final_states, :initial_elements, :log_elements, :onentry_actions, :parallel_states, :raise_elements, :send_elements] + @tag required_features: [ + :basic_states, + :compound_states, + :event_transitions, + :final_states, + :initial_elements, + :log_elements, + :onentry_actions, + :parallel_states, + :raise_elements, + :send_elements + ] @tag conformance: "mandatory", spec: "state" test "test364" do xml = """ From 894c27a8f9204b432a09e43f5296c30142f2d328 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:35:16 -0600 Subject: [PATCH 07/11] Adds Mix task to update required_features --- lib/mix/tasks/test.update_features.ex | 228 ++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 lib/mix/tasks/test.update_features.ex diff --git a/lib/mix/tasks/test.update_features.ex b/lib/mix/tasks/test.update_features.ex new file mode 100644 index 0000000..b098cbf --- /dev/null +++ b/lib/mix/tasks/test.update_features.ex @@ -0,0 +1,228 @@ +defmodule Mix.Tasks.Test.UpdateFeatures do + @shortdoc "Updates test files with @tag required_features: tags based on XML content" + + @moduledoc """ + Updates all SCION and W3C test files with @tag required_features: tags. + + Analyzes the XML content in each test file using SC.FeatureDetector to determine + which SCXML features are required, then adds or updates the @tag required_features: + tag accordingly. + + ## Usage + + mix test.update_features + + ## Options + + --dry-run Show what would be changed without modifying files + --verbose Show detailed output for each file processed + """ + + use Mix.Task + + alias SC.FeatureDetector + + @switches [dry_run: :boolean, verbose: :boolean] + @aliases [d: :dry_run, v: :verbose] + + @spec run([String.t()]) :: no_return() + def run(args) do + {opts, _args} = OptionParser.parse!(args, strict: @switches, aliases: @aliases) + + dry_run = Keyword.get(opts, :dry_run, false) + verbose = Keyword.get(opts, :verbose, false) + + Mix.shell().info("🔍 Analyzing test files and updating @tag required_features: tags...") + if dry_run, do: Mix.shell().info(" (DRY RUN MODE - No files will be modified)") + + # Process SCION test files + scion_files = find_test_files("test/scion_tests/**/*.exs") + w3c_files = find_test_files("test/scxml_tests/**/*.exs") + + scion_results = process_test_files(scion_files, :scion, dry_run, verbose) + w3c_results = process_test_files(w3c_files, :w3c, dry_run, verbose) + + # Report results + total_processed = scion_results.processed + w3c_results.processed + total_updated = scion_results.updated + w3c_results.updated + total_errors = scion_results.errors + w3c_results.errors + + Mix.shell().info("\n📊 Summary:") + + Mix.shell().info( + " SCION tests: #{scion_results.processed} processed, #{scion_results.updated} updated, #{scion_results.errors} errors" + ) + + Mix.shell().info( + " W3C tests: #{w3c_results.processed} processed, #{w3c_results.updated} updated, #{w3c_results.errors} errors" + ) + + Mix.shell().info( + " TOTAL: #{total_processed} processed, #{total_updated} updated, #{total_errors} errors" + ) + + if total_errors > 0 do + Mix.shell().error("\n❌ #{total_errors} files had errors during processing.") + System.halt(1) + else + Mix.shell().info("\n✅ Successfully processed all test files!") + end + end + + defp find_test_files(pattern) do + Path.wildcard(pattern) + |> Enum.filter(&File.exists?/1) + |> Enum.sort() + end + + defp process_test_files(files, suite_type, dry_run, verbose) do + suite_name = if suite_type == :scion, do: "SCION", else: "W3C" + + results = %{processed: 0, updated: 0, errors: 0} + + Enum.reduce(files, results, fn file_path, acc -> + case process_single_test_file(file_path, suite_type, dry_run, verbose) do + result -> + handle_processing_result(result, verbose, suite_name, file_path, acc) + end + end) + end + + defp handle_processing_result(result, verbose, suite_name, file_path, acc) do + case result do + {:updated, _features} -> + if verbose do + Mix.shell().info(" ✅ #{suite_name}: Updated #{Path.basename(file_path)}") + end + + %{acc | processed: acc.processed + 1, updated: acc.updated + 1} + + {:unchanged, _features} -> + if verbose do + Mix.shell().info( + " ⏭️ #{suite_name}: No changes needed for #{Path.basename(file_path)}" + ) + end + + %{acc | processed: acc.processed + 1} + + {:error, reason} -> + Mix.shell().error( + " ❌ #{suite_name}: Error processing #{Path.basename(file_path)}: #{reason}" + ) + + %{acc | processed: acc.processed + 1, errors: acc.errors + 1} + end + end + + defp process_single_test_file(file_path, suite_type, dry_run, _verbose) do + content = File.read!(file_path) + + with xml when not is_nil(xml) <- extract_xml_from_test(content), + %MapSet{} = features <- FeatureDetector.detect_features(xml) do + features_list = MapSet.to_list(features) |> Enum.sort() + process_features_update(content, features_list, suite_type, file_path, dry_run) + else + nil -> {:error, "No XML content found in test"} + _error -> {:error, "Feature detection failed"} + end + rescue + exception -> + {:error, Exception.message(exception)} + end + + defp process_features_update(content, features_list, suite_type, file_path, dry_run) do + case update_required_features_tag(content, features_list, suite_type) do + {:updated, new_content} -> + unless dry_run do + File.write!(file_path, new_content) + end + + {:updated, features_list} + + {:unchanged, _content} -> + {:unchanged, features_list} + end + end + + defp extract_xml_from_test(content) do + # Look for xml = """ ... """ pattern in test files + case Regex.run(~r/xml\s*=\s*"""\s*(.+?)\s*"""/ms, content, capture: :all_but_first) do + [xml_content] -> + # Clean up any leading/trailing whitespace and ensure proper XML format + xml_content + |> String.trim() + + nil -> + # Try alternative pattern: looking for directly in triple quotes + case Regex.run(~r/"""\s*(<\?xml.+?<\/scxml>|)/ms, content, + capture: :all_but_first + ) do + [xml_content] -> String.trim(xml_content) + nil -> nil + end + end + end + + defp update_required_features_tag(content, features_list, suite_type) do + # Create the new @tag required_features: line + new_tag = + if features_list == [] do + " @tag required_features: []" + else + features_formatted = Enum.map_join(features_list, ", ", &inspect/1) + + " @tag required_features: [#{features_formatted}]" + end + + # Check if @required_features or @tag required_features: already exists + case Regex.run( + ~r/^(\s*)@(required_features\s+\[.*?\]|tag required_features:\s*\[.*?\])/m, + content + ) do + [existing_line, _indent, _match_group] -> + # Replace existing @required_features or @tag required_features: + current_tag = String.trim_leading(existing_line) + + if current_tag == String.trim_leading(new_tag) do + {:unchanged, content} + else + new_content = String.replace(content, existing_line, new_tag) + {:updated, new_content} + end + + nil -> + # Add new @tag required_features: after existing @tag lines + case add_required_features_tag(content, new_tag, suite_type) do + ^content -> {:unchanged, content} + new_content -> {:updated, new_content} + end + end + end + + defp add_required_features_tag(content, new_tag, suite_type) do + suite_tag = if suite_type == :scion, do: "@tag :scion", else: "@tag :scxml_w3" + + # Find the position after the last @tag line to insert @required_features + lines = String.split(content, "\n") + + {new_lines, _inserted_flag} = + Enum.reduce(lines, {[], false}, fn line, {acc_lines, inserted} -> + cond do + # If we haven't inserted yet and this line contains the suite tag + not inserted and String.contains?(line, suite_tag) -> + {acc_lines ++ [line, new_tag], true} + + # If we haven't inserted yet and we see a line that's not a tag (like test definition) + not inserted and String.match?(line, ~r/^\s*(test\s|def\s)/) -> + # Insert before this line + {acc_lines ++ [new_tag, line], true} + + true -> + {acc_lines ++ [line], inserted} + end + end) + + Enum.join(new_lines, "\n") + end +end From 61d37562dd47c056331d69a0de0b3c219513df32 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:43:25 -0600 Subject: [PATCH 08/11] Adds tests for SC module --- test/sc_test.exs | 106 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/test/sc_test.exs b/test/sc_test.exs index dc13733..736a432 100644 --- a/test/sc_test.exs +++ b/test/sc_test.exs @@ -1,4 +1,110 @@ defmodule SCTest do use ExUnit.Case doctest SC + + describe "SC.parse/1" do + test "parses basic SCXML document successfully" do + xml = """ + + + + + """ + + assert {:ok, document} = SC.parse(xml) + assert %SC.Document{} = document + assert document.name == nil + assert document.initial == "start" + end + + test "returns error for invalid XML" do + invalid_xml = "" + assert {:error, _reason} = SC.parse(invalid_xml) + end + + test "returns error for empty string" do + assert {:error, _reason} = SC.parse("") + end + end + + describe "SC.validate/1" do + test "validates a valid document successfully" do + xml = """ + + + + + """ + + {:ok, document} = SC.parse(xml) + assert {:ok, _optimized_document, _warnings} = SC.validate(document) + end + + test "returns error for document with missing initial state" do + xml = """ + + + + + """ + + {:ok, document} = SC.parse(xml) + assert {:error, _errors, _warnings} = SC.validate(document) + end + end + + describe "SC.interpret/1" do + test "initializes interpreter with valid document" do + xml = """ + + + + + """ + + {:ok, document} = SC.parse(xml) + assert {:ok, state_chart} = SC.interpret(document) + assert %SC.StateChart{} = state_chart + end + + test "returns error for invalid document" do + # Create an invalid document by manually constructing it + invalid_document = %SC.Document{ + states: [], + initial: "nonexistent", + name: nil + } + + assert {:error, _errors, _warnings} = SC.interpret(invalid_document) + end + end + + describe "integration tests" do + test "full workflow: parse -> validate -> interpret" do + xml = """ + + + + + + + + + + """ + + # Parse + assert {:ok, document} = SC.parse(xml) + + # Validate + assert {:ok, _optimized_document, _warnings} = SC.validate(document) + + # Interpret + assert {:ok, state_chart} = SC.interpret(document) + + # Verify initial state is active + active_states = SC.Configuration.active_states(state_chart.configuration) + assert MapSet.member?(active_states, "idle") + end + end end From db6cfaf94d36b734b3d2e1e27658f96391f1b9cf Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:43:38 -0600 Subject: [PATCH 09/11] Adds docs MIX_ENV to speed up dev, test --- mix.exs | 9 +++++++-- mix.lock | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mix.exs b/mix.exs index e5a0318..f4813a8 100644 --- a/mix.exs +++ b/mix.exs @@ -6,11 +6,15 @@ defmodule SC.MixProject do @description "StateCharts for Elixir" @source_url "https://github.com/riddler/sc" @deps [ + # Documentation (split out to reduce compile time in dev/test) + {:ex_doc, "~> 0.31", only: :docs, runtime: false}, + # Development, Test, Local + {:castore, "~> 1.0", only: [:dev, :test]}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, - {:ex_doc, "~> 0.31", only: :dev, runtime: false}, {:excoveralls, "~> 0.18", only: :test}, + {:jason, "~> 1.4", only: [:dev, :test]}, # Runtime {:predicator, "~> 2.0"}, @@ -36,7 +40,8 @@ defmodule SC.MixProject do "coveralls.html": :test, "coveralls.json": :test, "coveralls.cobertura": :test, - "coveralls.github": :test + "coveralls.github": :test, + docs: :docs ], dialyzer: [ plt_file: {:no_warn, "priv/plts/dialyzer.plt"}, diff --git a/mix.lock b/mix.lock index 3ff0eb4..d30b555 100644 --- a/mix.lock +++ b/mix.lock @@ -1,5 +1,6 @@ %{ "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, + "castore": {:hex, :castore, "1.0.15", "8aa930c890fe18b6fe0a0cff27b27d0d4d231867897bd23ea772dee561f032a3", [:mix], [], "hexpm", "96ce4c69d7d5d7a0761420ef743e2f4096253931a3ba69e5ff8ef1844fe446d3"}, "credo": {:hex, :credo, "1.7.12", "9e3c20463de4b5f3f23721527fcaf16722ec815e70ff6c60b86412c695d426c1", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "8493d45c656c5427d9c729235b99d498bd133421f3e0a683e5c1b561471291e5"}, "dialyxir": {:hex, :dialyxir, "1.4.6", "7cca478334bf8307e968664343cbdb432ee95b4b68a9cba95bdabb0ad5bdfd9a", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "8cf5615c5cd4c2da6c501faae642839c8405b49f8aa057ad4ae401cb808ef64d"}, "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, From 8f064740ab7960a034f3f1af79d7eb3fa84e605b Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:52:17 -0600 Subject: [PATCH 10/11] Lints test --- test/sc_test.exs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/sc_test.exs b/test/sc_test.exs index 736a432..e95dbfd 100644 --- a/test/sc_test.exs +++ b/test/sc_test.exs @@ -2,6 +2,8 @@ defmodule SCTest do use ExUnit.Case doctest SC + alias SC.{Configuration, Document} + describe "SC.parse/1" do test "parses basic SCXML document successfully" do xml = """ @@ -12,7 +14,7 @@ defmodule SCTest do """ assert {:ok, document} = SC.parse(xml) - assert %SC.Document{} = document + assert %Document{} = document assert document.name == nil assert document.initial == "start" end @@ -101,9 +103,9 @@ defmodule SCTest do # Interpret assert {:ok, state_chart} = SC.interpret(document) - + # Verify initial state is active - active_states = SC.Configuration.active_states(state_chart.configuration) + active_states = Configuration.active_states(state_chart.configuration) assert MapSet.member?(active_states, "idle") end end From 70e2ce3b045e974a5fdbe1efd46b8ff978df6473 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 23 Aug 2025 05:54:21 -0600 Subject: [PATCH 11/11] Lints docs --- documentation/feature_complexity_analysis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/feature_complexity_analysis.md b/documentation/feature_complexity_analysis.md index c9faa35..1b74401 100644 --- a/documentation/feature_complexity_analysis.md +++ b/documentation/feature_complexity_analysis.md @@ -26,7 +26,7 @@ These are the most blocking features - they appear in most failing tests: - Medium complexity - needs basic expression evaluation - Example: `` -**onexit_actions (21 tests blocked)** +#### onexit_actions (21 tests blocked) - Actions executed when exiting a state - Similar complexity to onentry, but during exit phase