diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 5c979a2..c1c8861 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -38,9 +38,21 @@ "source": false } } + }, + { + "id": "7ed6e378468e643d", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Calendar/2024-07-26 GUI testing.md", + "mode": "source", + "source": false + } + } } ], - "currentTab": 1 + "currentTab": 2 } ], "direction": "vertical" @@ -106,7 +118,7 @@ "state": { "type": "backlink", "state": { - "file": "Kanban Pages/HelyxVerify.md", + "file": "Calendar/2024-07-26 GUI testing.md", "collapseAll": true, "extraContext": false, "sortOrder": "alphabetical", @@ -123,7 +135,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Kanban Pages/HelyxVerify.md", + "file": "Calendar/2024-07-26 GUI testing.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -146,7 +158,7 @@ "state": { "type": "outline", "state": { - "file": "Kanban Pages/HelyxVerify.md" + "file": "Calendar/2024-07-26 GUI testing.md" } } } @@ -168,10 +180,11 @@ "obsidian-full-calendar:Open Full Calendar": false } }, - "active": "1d01cbb8a76aa34a", + "active": "7ed6e378468e643d", "lastOpenFiles": [ - "Kanban Pages/Work Kanban.md", "Kanban Pages/HelyxVerify.md", + "Calendar/2024-07-26 GUI testing.md", + "Kanban Pages/Work Kanban.md", "Calendar/2024-07-18 Processes.md", "Calendar/2024-07-19 Core Foundation - Testing.md", "Meetings/QA/2024-07-01.md", @@ -200,7 +213,6 @@ "Processes.md", "Worklogs/2023-07-31.md", "2024-06-20.md", - "Worklogs", - "Kanban.md" + "Worklogs" ] } \ No newline at end of file diff --git a/Calendar/2024-07-26 GUI testing.md b/Calendar/2024-07-26 GUI testing.md new file mode 100644 index 0000000..8f543cf --- /dev/null +++ b/Calendar/2024-07-26 GUI testing.md @@ -0,0 +1,22 @@ +--- +title: GUI testing +allDay: true +date: 2024-07-26 +completed: null +--- +- "Scriptable tests"? Why? + - Can't we use Allrun/Sbatch and Dicts in core? + - Just run everything, we just need something to compare the results + - Compare WHAT? +- Backward compatibility for macro language + - Stefano not considering something needed for 4.3 + - No time for working on it right now + - Changes in the GUI change the macro-language + - "Things need to be notified downstream" + - Same thing with Core and GUI, maybe? +- Slow development down + - But the otherside is the software is more buggy +- Run on "stable" for the integration tests +- "We picked issues with core" + - Then we need more core testing, not integration testing +- Sharepoint copying is not working in the QA pipeline \ No newline at end of file diff --git a/Kanban Pages/HelyxVerify.md b/Kanban Pages/HelyxVerify.md index 07fb37b..a8db6ad 100644 --- a/Kanban Pages/HelyxVerify.md +++ b/Kanban Pages/HelyxVerify.md @@ -55,16 +55,20 @@ Idea for a Foam-formated file for Verify // so on. runs -​( +( // This is a quick test: The example is reduced to just 2 timesteps, and // we check the resulting file against its MD5 hash. - ​quick { + quick { steps 2; // Any other key name that it is not reserved ("steps", "continuations") // represents a file to be compared. - "postProcessing/2/qux" { - md5 "123123"; - } + checks + ( + { + result "postProcessing/2/qux"; + md5 "123123"; + } + ) } // In case the MD5 fails, the case is run again, but this time reduced to @@ -72,6 +76,15 @@ runs // listed files to make one follow the timesteps of the previous. The run // will fail if relative or absolute differences are above 0. short { + // ********** Maybe future improvements ********** + execute previousFails; // previousFails, previousPass, always + workspace reuse; // restart (default), reuse + changes { + "foamFile" { + "system/controlDict/timestep" 0.2; + } + } + // *********************************************** steps 10; // This makes the continuations explicit, by specificing files that // form a single run. @@ -80,17 +93,22 @@ runs "system/caseSetupDict.continuation1" "system/caseSetupDict.continuation2" ); - "postProcessing/10/foo" { - reference "verification/10/foo"; - variables "phi" "Tmean"; - // No tolerances mean "it will fail if the values are not the same". - } - // This is a completely different file from the above, with different - // keys - "postProcessing/10/bar" { - reference "verification/10/bar"; - variables "Tmin" "Tmax"; - } + checks + ( + { + result "postProcessing/10/foo"; + reference "verification/10/foo"; + variables "phi" "Tmean"; + // No tolerances mean "it will fail if the values are + // not the same as they are in the reference". + } + { + // A different file, with different variables. + result "postProcessing/10/bar"; + reference "verification/10/bar"; + variables "Tmin" "Tmax"; + } + ) } // If in 10 timestemps the values do not match the reference file, a 100 @@ -102,41 +120,48 @@ runs // This file only appears in the 100 runs, so we can't have a global // list of files not attached to steps (although it is the same "foo" // from 10 steps). - "postProcessing/100/foo" { - reference "verification/100/foo"; - variables "phi" "Tmean"; - } - "postProcessing/100/bar" { - reference "verification/100/bar"; - variables "Tmin" "Tmax"; - } + checks + ( + { + result "postProcessing/100/foo"; + reference "verification/100/foo"; + variables "phi" "Tmean"; + } + { + result "postProcessing/100/bar"; + reference "verification/100/bar"; + variables "Tmin" "Tmax"; + } + ) } // If the 100 timesteps fails, then we run the example a 4th time, this // time without any reductions (the "steps" property is not set in this // run). There are no continations either. "run till completion" { - // With no steps, there is no reduction. - "postProcessing/20000/baz" { - reference "verification/20000/baz"; - variables "integral"; - absolute 20; - relative 20; - // no operator means OR, so example will fail if the - // absolute different is above 20 OR the relative - // difference is above 20. - } + checks + ( + { + result "postProcessing/20000/baz"; + reference "verification/20000/baz"; + variables "integral"; + absolute 20; + relative 20; + // no operator means OR, so example will fail if the + // absolute different is above 20 OR the relative + // difference is above 20. + } + ) } ); // This is used for filtering. -tags ("GIB" "AES" "compressible"); +tags "GIB" "AES" "compressible"; // Only present if the example can't be run in some platform. -unstable { - operatingSystem windows; // valid values: "windows", "linux", "all" - reason "Allrun uses Python, and Python isn't usually available on Windows"; -} +unstable true; +operatingSystem windows; // valid values: "windows", "linux", "all" +reason "Allrun uses Python, and Python isn't usually available on Windows"; ``` Pest: ```pest @@ -369,4 +394,21 @@ loop { - Inside each of those, expand the case (default won't expand, but still....) - We could say it is not possible to add a new verificationDict into variations, but I do like the idea of having a different content for it. - Ok, ignoring this for now 'cause it fucks up my thinking. - - Expand by run on default, send variations down the pipeline \ No newline at end of file + - Expand by run on default, send variations down the pipeline\ +# Named dicts +``` +list ( name1 { inner 1; } name2 { inner 2; } ) +``` + +``` +Dictionary({ + "list": [ + List( + [Value("name1"), Dictionary({"inner": [Value("1")]}), + Value("name2"), Dictionary({"inner": [Value("2")]}) + ] + ) + ] +}) + +``` \ No newline at end of file