From 209332993244e5b7356d7bd2afb3248917b7501e Mon Sep 17 00:00:00 2001 From: Roy Stogner Date: Tue, 11 Jul 2023 18:02:10 -0500 Subject: [PATCH 1/4] Test failbit when converting boundary ids Resolves #24950 --- framework/src/utils/MooseMeshUtils.C | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/framework/src/utils/MooseMeshUtils.C b/framework/src/utils/MooseMeshUtils.C index 6db1a9eaa42b..e7f865672da0 100644 --- a/framework/src/utils/MooseMeshUtils.C +++ b/framework/src/utils/MooseMeshUtils.C @@ -137,6 +137,12 @@ getBoundaryIDs(const MeshBase & mesh, { std::istringstream ss(boundary_name[i]); ss >> id; + if (ss.fail()) + mooseError("Failed to convert integer ", + boundary_name[i], + " to a boundary id. Got ", + id, + " instead. Is the integer too large for boundary_id_type?"); } ids[i] = id; From 3c4b04932b8e72934be481eace7ee9ca0c2f8baa Mon Sep 17 00:00:00 2001 From: Roy Stogner Date: Wed, 12 Jul 2023 09:22:05 -0500 Subject: [PATCH 2/4] Add test for boundary integer conversion failure Plus a test for conversion success, more as contrast than out of fear that that's not covered elsewhere. --- .../polyline_mesh_generator_good_boundary_in.e | Bin 0 -> 4048 bytes .../polyline_mesh_generator_bad_boundary.i | 12 ++++++++++++ .../polyline_mesh_generator_good_boundary.i | 10 ++++++++++ .../polyline_mesh_generator/tests | 17 +++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 test/tests/meshgenerators/polyline_mesh_generator/gold/polyline_mesh_generator_good_boundary_in.e create mode 100644 test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_bad_boundary.i create mode 100644 test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_good_boundary.i diff --git a/test/tests/meshgenerators/polyline_mesh_generator/gold/polyline_mesh_generator_good_boundary_in.e b/test/tests/meshgenerators/polyline_mesh_generator/gold/polyline_mesh_generator_good_boundary_in.e new file mode 100644 index 0000000000000000000000000000000000000000..9104684a198d64c577f3dcb466644ca7aaefa4e0 GIT binary patch literal 4048 zcmeHJy>8S%5WbKf+m}m>L_tal3KS3$D563lh)WO>HSNlYHx~JOGbC zNr41H6ciLZ3Xj0|?RqZGMIoW)Mw$HWm>0A@U7=1rid--bzBKey5saiL!FR{*E zXDQ;Iv9GrrnIX*s$3uMF@~Bc*i0Kw+AJFc3Y8n}{YkSz*R>j{qn8S5!gn3`|0dzGf zGxbJSb!H9MmZ1wz7rwniA6#JHILK|%WM-sFo0&!(*($}}PLSu`68)heG&;y~oZByS z*0_G7NRG3Dxkh~y3N>mDVV?Tm!gv7kM_VXZ(u|o>;l{AH++AZfWyLo*AtQ zT_38EHo8h0Td9$?soJw+lP1+fW#+zjT7}O|Xy4t5qeI)0ac@+S6%2S5Nc;;;r1wrY zggLRynF#ktg#@?Jgus`TEv06}4xsc~@^{nifAPf-7Vj(mcQB7keJ&pNBtmSvzu+Fn zz<1*jds#g3-vTzO&&T6E5$VQz3}Xm|5NPV@J=N@b@Ody>IwQ@Djbp zPMqa$*mR0LxfJ^r2-b+D;2q;#l6uNH`f4}J^H)he_IHOE#;0H`!{9yU%zu|lYIQ{} zQd2_5h1_3N%Fgilj(f5E@8UY}koW_dfy1AT&zK?{xA!{!$g#uM z)3=lV5hBF4zVRoF!<-H91omijW>3-W>V&%*m5&!65 zg?G)NeA7MKPnhJgvKQU#jA`5a@*6GW$xQF9r}k|zw7uZB+sw}_&!_VY%rh|0z&r!< c49qj|e`J8)6a3!e$D@pA=kgswJC*arKd}<}P5=M^ literal 0 HcmV?d00001 diff --git a/test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_bad_boundary.i b/test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_bad_boundary.i new file mode 100644 index 000000000000..2c4125af0bde --- /dev/null +++ b/test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_bad_boundary.i @@ -0,0 +1,12 @@ +[Mesh] + [poly] + type = PolyLineMeshGenerator + points = '-1.0 0.0 0.0 + 1.0 1.0 1.0 + 1.0 2.0 3.0' + # This should error for 16-bit boundary id configs: + start_boundary = 40000 + # This should error even for 64-bit boundary id configs: + end_boundary = 123456789012345678901234567890 + [] +[] diff --git a/test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_good_boundary.i b/test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_good_boundary.i new file mode 100644 index 000000000000..3f2c8b9e9e0c --- /dev/null +++ b/test/tests/meshgenerators/polyline_mesh_generator/polyline_mesh_generator_good_boundary.i @@ -0,0 +1,10 @@ +[Mesh] + [poly] + type = PolyLineMeshGenerator + points = '-1.0 0.0 0.0 + 1.0 1.0 1.0 + 1.0 2.0 3.0' + start_boundary = 'non_numbered' + end_boundary = 42 + [] +[] diff --git a/test/tests/meshgenerators/polyline_mesh_generator/tests b/test/tests/meshgenerators/polyline_mesh_generator/tests index 623fd9dd442a..d172795ee6d8 100644 --- a/test/tests/meshgenerators/polyline_mesh_generator/tests +++ b/test/tests/meshgenerators/polyline_mesh_generator/tests @@ -37,4 +37,21 @@ detail = "refining a loop if requested" [] [] + [polyline_good_boundary] + type = 'Exodiff' + input = 'polyline_mesh_generator_good_boundary.i' + cli_args = '--mesh-only' + exodiff = 'polyline_mesh_generator_good_boundary_in.e' + recover = false + requirement = "The system shall set a boundary name or id if requested" + [] + [polyline_bad_boundary] + type = 'RunException' + input = 'polyline_mesh_generator_bad_boundary.i' + expect_err = "Failed to convert integer" + issues = '#24950' + cli_args = '--mesh-only' + recover = false + requirement = "The system shall detect any unsatisfiable boundary id requests" + [] [] From 2be26f23d72f82dbf9fe5f56ee225061f93ccd17 Mon Sep 17 00:00:00 2001 From: roystgnr Date: Wed, 12 Jul 2023 16:02:20 -0500 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: Alex Lindsay --- test/tests/meshgenerators/polyline_mesh_generator/tests | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/tests/meshgenerators/polyline_mesh_generator/tests b/test/tests/meshgenerators/polyline_mesh_generator/tests index d172795ee6d8..0b9c6797f237 100644 --- a/test/tests/meshgenerators/polyline_mesh_generator/tests +++ b/test/tests/meshgenerators/polyline_mesh_generator/tests @@ -43,7 +43,7 @@ cli_args = '--mesh-only' exodiff = 'polyline_mesh_generator_good_boundary_in.e' recover = false - requirement = "The system shall set a boundary name or id if requested" + requirement = "The system shall set a boundary name or id if requested." [] [polyline_bad_boundary] type = 'RunException' @@ -52,6 +52,6 @@ issues = '#24950' cli_args = '--mesh-only' recover = false - requirement = "The system shall detect any unsatisfiable boundary id requests" + requirement = "The system shall detect any unsatisfiable boundary id requests." [] [] From 63d5b90318bea27bdc1fcffff6815072b1357f51 Mon Sep 17 00:00:00 2001 From: Roy Stogner Date: Wed, 12 Jul 2023 16:18:44 -0500 Subject: [PATCH 4/4] Add missing design, issue entries --- test/tests/meshgenerators/polyline_mesh_generator/tests | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/tests/meshgenerators/polyline_mesh_generator/tests b/test/tests/meshgenerators/polyline_mesh_generator/tests index 0b9c6797f237..7f88d5b5b107 100644 --- a/test/tests/meshgenerators/polyline_mesh_generator/tests +++ b/test/tests/meshgenerators/polyline_mesh_generator/tests @@ -38,14 +38,17 @@ [] [] [polyline_good_boundary] + design = 'meshgenerators/PolyLineMeshGenerator.md' type = 'Exodiff' input = 'polyline_mesh_generator_good_boundary.i' + issues = '#24950' cli_args = '--mesh-only' exodiff = 'polyline_mesh_generator_good_boundary_in.e' recover = false requirement = "The system shall set a boundary name or id if requested." [] [polyline_bad_boundary] + design = 'meshgenerators/PolyLineMeshGenerator.md' type = 'RunException' input = 'polyline_mesh_generator_bad_boundary.i' expect_err = "Failed to convert integer"