changeset 760:e7176fb09e98 test/type_stability

Add utility function for testing type stability using the @inferred macro to allow for tests failing, rather than producing an error.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 02 Jul 2021 14:02:45 +0200
parents 80d88bb1c5bd
children 894bc613f61d
files test/SbpOperators/volumeops/volume_operator_test.jl test/runtests.jl test/test_util.jl
diffstat 3 files changed, 19 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/test/SbpOperators/volumeops/volume_operator_test.jl	Fri Jul 02 13:46:39 2021 +0200
+++ b/test/SbpOperators/volumeops/volume_operator_test.jl	Fri Jul 02 14:02:45 2021 +0200
@@ -112,13 +112,13 @@
     end
 
     @testset "Inferred" begin
-        @test_skip @inferred apply(op_x, v,1,1)
-        @inferred apply(op_x, v, Index(1,Lower),Index(1,Lower))
-        @inferred apply(op_x, v, Index(6,Interior),Index(1,Lower))
-        @inferred apply(op_x, v, Index(11,Upper),Index(1,Lower))
-        @test_skip @inferred apply(op_y, v,1,1)
-        @inferred apply(op_y, v, Index(1,Lower),Index(1,Lower))
-        @inferred apply(op_y, v, Index(1,Lower),Index(6,Interior))
-        @inferred apply(op_y, v, Index(1,Lower),Index(11,Upper))
+        @test is_type_stable(apply, op_x, v, 1, 1)
+        @test is_type_stable(apply, op_x, v, Index(1,Lower), Index(1,Lower))
+        @test is_type_stable(apply, op_x, v, Index(6,Interior), Index(1,Lower))
+        @test is_type_stable(apply, op_x, v, Index(11,Upper), Index(1,Lower))
+        @test is_type_stable(apply, op_y, v, 1, 1)
+        @test is_type_stable(apply, op_y, v, Index(1,Lower), Index(1,Lower))
+        @test is_type_stable(apply, op_y, v, Index(1,Lower), Index(6,Interior))
+        @test is_type_stable(apply, op_y, v, Index(1,Lower), Index(11,Upper))
     end
 end
--- a/test/runtests.jl	Fri Jul 02 13:46:39 2021 +0200
+++ b/test/runtests.jl	Fri Jul 02 14:02:45 2021 +0200
@@ -1,6 +1,9 @@
 using Test
 using Glob
 
+include("test_util.jl")
+
+
 """
     run_testfiles()
     run_testfiles(path, globs)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/test_util.jl	Fri Jul 02 14:02:45 2021 +0200
@@ -0,0 +1,8 @@
+function is_type_stable(f,args...)
+    type_stable = true
+    try @inferred f(args...)
+    catch
+        type_stable = false
+    end
+    return type_stable
+end