From 5eb9c7853340aae7524d93132da75e9704ede36a Mon Sep 17 00:00:00 2001 From: Martin Ettl Date: Fri, 23 Apr 2010 22:04:49 +0200 Subject: [PATCH] added further testcases to multidimensional out of bounds unit test --- test/testbufferoverrun.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/test/testbufferoverrun.cpp b/test/testbufferoverrun.cpp index 7eac49685..28d42c62c 100755 --- a/test/testbufferoverrun.cpp +++ b/test/testbufferoverrun.cpp @@ -945,6 +945,13 @@ private: "}\n"); ASSERT_EQUALS("[test.cpp:4]: (error) Array 'a[2][2][2]' index a[1][2][1] out of bounds\n", errout.str()); + check("void f()\n" + "{\n" + " char a[2][2][2][2];\n" + " a[1][2][1][1] = 'a';\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:4]: (error) Array 'a[2][2][2][2]' index a[1][2][1][1] out of bounds\n", errout.str()); + check("void f()\n" "{\n" " char a[2][2][2];\n" @@ -966,7 +973,25 @@ private: " char a[ii][ii][ii];\n" " a[i*3][4*ii][ii] = 'a';\n" "}\n"); - TODO_ASSERT_EQUALS("[test.cpp:6]: (error) Array 'a[10][10][10]' index a[6][40][10] out of bounds\n", errout.str()); + ASSERT_EQUALS("[test.cpp:6]: (error) Array 'a[10][10][10]' index a[6][40][10] out of bounds\n", errout.str()); + + check("void f()\n" + "{\n" + " int i=2;\n" + " int ii=1;\n" + " char a[ii][ii][ii];\n" + " a[i][i][i] = 'a';\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:6]: (error) Array 'a[1][1][1]' index a[2][2][2] out of bounds\n", errout.str()); + + check("void f()\n" + "{\n" + " int i=2;\n" + " int ii=i*3;\n" + " char a[ii][ii][ii];\n" + " a[i*3][i*3][i] = 'a';\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:6]: (error) Array 'a[6][6][6]' index a[6][6][2] out of bounds\n", errout.str()); }