Преглед на файлове

closes https://github.com/assimp/assimp/issues/3348: reproduce fuzzer issues.

kimkulling преди 5 години
родител
ревизия
6cca078947
променени са 4 файла, в които са добавени 74 реда и са изтрити 6 реда
  1. 7 2
      test/CMakeLists.txt
  2. 67 0
      test/unit/Fuzzer/utFuzzerTestCases.cpp
  3. 0 2
      test/unit/MathTest.cpp
  4. 0 2
      test/unit/utBatchLoader.cpp

+ 7 - 2
test/CMakeLists.txt

@@ -2,8 +2,7 @@
 # ----------------------------------------------------------------------
 #
 # Copyright (c) 2006-2020, assimp team
-
-
+#
 # All rights reserved.
 #
 # Redistribution and use of this software in source and binary forms,
@@ -189,8 +188,13 @@ SET( POST_PROCESSES
   unit/utGenBoundingBoxesProcess.cpp
 )
 
+SET( FUZZER
+  unit/Fuzzer/utFuzzerTestCases.cpp
+)
+
 SOURCE_GROUP( UnitTests\\Compiler     FILES  unit/CCompilerTest.c )
 SOURCE_GROUP( UnitTests\\Common       FILES  ${COMMON} )
+SOURCE_GROUP( UnitTests\\Fuzzer       FILES  ${FUZZER} )
 SOURCE_GROUP( UnitTests\\ImportExport FILES  ${IMPORTERS} )
 SOURCE_GROUP( UnitTests\\Material     FILES  ${MATERIAL} )
 SOURCE_GROUP( UnitTests\\Math         FILES  ${MATH} )
@@ -202,6 +206,7 @@ add_executable( unit
     unit/Main.cpp
     ../code/Common/Version.cpp
 	${COMMON}
+    ${FUZZER}
 	${IMPORTERS}
 	${MATERIAL}
 	${MATH}

+ 67 - 0
test/unit/Fuzzer/utFuzzerTestCases.cpp

@@ -0,0 +1,67 @@
+/*
+---------------------------------------------------------------------------
+Open Asset Import Library (assimp)
+---------------------------------------------------------------------------
+
+Copyright (c) 2006-2020, assimp team
+
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms,
+with or without modification, are permitted provided that the following
+conditions are met:
+
+* Redistributions of source code must retain the above
+copyright notice, this list of conditions and the
+following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the
+following disclaimer in the documentation and/or other
+materials provided with the distribution.
+
+* Neither the name of the assimp team, nor the names of its
+contributors may be used to endorse or promote products
+derived from this software without specific prior
+written permission of the assimp team.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---------------------------------------------------------------------------
+*/
+
+#include "UnitTestPCH.h"
+
+#include <assimp/cimport.h>
+#include <assimp/Importer.hpp>
+#include <assimp/scene.h>
+#include <assimp/postprocess.h>
+
+using namespace Assimp;
+
+class utFuzzerTestCases : public ::testing::Test {
+    // empty
+};
+
+wchar_t *data = L"vn xx� > �������";
+
+TEST_F(utFuzzerTestCases, testFuzzerData) {
+    aiLogStream stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, NULL);
+    aiAttachLogStream(&stream);
+
+    Importer importer;
+    const aiScene *sc = importer.ReadFileFromMemory(data, 19 * sizeof(wchar_t),
+            aiProcessPreset_TargetRealtime_Quality, nullptr);
+
+    aiDetachLogStream(&stream);
+    EXPECT_EQ(nullptr, sc);
+}

+ 0 - 2
test/unit/MathTest.cpp

@@ -5,8 +5,6 @@ Open Asset Import Library (assimp)
 
 Copyright (c) 2006-2020, assimp team
 
-
-
 All rights reserved.
 
 Redistribution and use of this software in source and binary forms,

+ 0 - 2
test/unit/utBatchLoader.cpp

@@ -5,8 +5,6 @@ Open Asset Import Library (assimp)
 
 Copyright (c) 2006-2020, assimp team
 
-
-
 All rights reserved.
 
 Redistribution and use of this software in source and binary forms,