diff --git a/src/modules/shellprocess/Tests.cpp b/src/modules/shellprocess/Tests.cpp index abf988124..a1198a190 100644 --- a/src/modules/shellprocess/Tests.cpp +++ b/src/modules/shellprocess/Tests.cpp @@ -113,3 +113,30 @@ script: false QCOMPARE( cl1.count(), 0 ); } + +void ShellProcessTests::testProcessFromObject() +{ + YAML::Node doc = YAML::Load( R"(--- +script: + command: "ls /tmp" + timeout: 20 +)" ); + CommandList cl( + CalamaresUtils::yamlMapToVariant( doc ).toMap().value( "script" ) ); + QVERIFY( !cl.isEmpty() ); + QCOMPARE( cl.count(), 1 ); +} + +void ShellProcessTests::testProcessListFromObject() +{ + YAML::Node doc = YAML::Load( R"(--- +script: + - command: "ls /tmp" + timeout: 20 + - "-/bin/false" +)" ); + CommandList cl( + CalamaresUtils::yamlMapToVariant( doc ).toMap().value( "script" ) ); + QVERIFY( !cl.isEmpty() ); + QCOMPARE( cl.count(), 2 ); +} diff --git a/src/modules/shellprocess/Tests.h b/src/modules/shellprocess/Tests.h index fa29efeb2..af1f78487 100644 --- a/src/modules/shellprocess/Tests.h +++ b/src/modules/shellprocess/Tests.h @@ -36,6 +36,10 @@ private Q_SLOTS: void testProcessListFromList(); // Create from a simple YAML string void testProcessListFromString(); + // Create from a single complex YAML + void testProcessFromObject(); + // Create from a complex YAML list + void testProcessListFromObject(); }; #endif