flavio / qjson

QJson is a qt-based library that maps JSON data to QVariant objects.
http://qjson.sourceforge.net
GNU Lesser General Public License v2.1
287 stars 140 forks source link

2/4 Test #2: testscanner ......................***Failed 0.01 sec [qjson@0.9.0] #120

Closed Tom-python0121 closed 3 years ago

Tom-python0121 commented 3 years ago

hello,I meet a problem about 2/4 Test #2: testscanner ......................*Failed 0.01 sec when make test**. see:

[root@centos8 qjson]# ls
CMakeLists.txt  COPYING.lib  ChangeLog  QJSONConfig.cmake.in  QJSONConfigVersion.cmake.in  QJson.pc.in  README.license  README.md  cmake_uninstall.cmake.in  doc  include  src  tests
[root@centos8 qjson]# mkdir build
[root@centos8 qjson]# cd build
[root@centos8 build]#cmake -DQJSON_BUILD_TESTS=yes ..
-- The C compiler identification is GNU 8.3.1
-- The CXX compiler identification is GNU 8.3.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/spack/spack/lib/spack/env/gcc/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/spack/spack/lib/spack/env/gcc/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:6 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Deprecation Warning at CMakeLists.txt:11 (cmake_policy):
  The OLD behavior for policy CMP0020 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.

Qt5 found
Enable QStringBuilder
-- Building testparser
-- Building testscanner
-- Building testqobjecthelper
-- Building testserializer
-- Configuring done
CMake Warning (dev) in src/CMakeLists.txt:
  Policy CMP0100 is not set: Let AUTOMOC and AUTOUIC process .hh files.  Run
  "cmake --help-policy CMP0100" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  For compatibility, CMake is excluding the header file(s):

    "/tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/src/json_parser.hh"

  from processing by AUTOMOC.  If any of the files should be processed, set
  CMP0100 to NEW.  If any of the files should not be processed, explicitly
  exclude them by setting the source file property SKIP_AUTOMOC:

    set_property(SOURCE file.hh PROPERTY SKIP_AUTOMOC ON)

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/build
[root@centos8 build]#make
Scanning dependencies of target qjson-qt5_autogen
[  2%] Automatic MOC for target qjson-qt5
AutoMoc: /tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/src/qobjecthelper.h:0: Note: No relevant classes found. No output generated.
[  2%] Built target qjson-qt5_autogen
Scanning dependencies of target qjson-qt5
[  5%] Building CXX object src/CMakeFiles/qjson-qt5.dir/qjson-qt5_autogen/mocs_compilation.cpp.o
[  8%] Building CXX object src/CMakeFiles/qjson-qt5.dir/parser.cpp.o
[ 11%] Building CXX object src/CMakeFiles/qjson-qt5.dir/qobjecthelper.cpp.o
[ 14%] Building CXX object src/CMakeFiles/qjson-qt5.dir/json_scanner.cpp.o
[ 17%] Building CXX object src/CMakeFiles/qjson-qt5.dir/json_parser.cc.o
[ 20%] Building CXX object src/CMakeFiles/qjson-qt5.dir/parserrunnable.cpp.o
[ 22%] Building CXX object src/CMakeFiles/qjson-qt5.dir/serializer.cpp.o
[ 25%] Building CXX object src/CMakeFiles/qjson-qt5.dir/serializerrunnable.cpp.o
[ 28%] Linking CXX shared library ../lib/libqjson-qt5.so
[ 28%] Built target qjson-qt5
Scanning dependencies of target cmdline_tester_autogen
[ 31%] Automatic MOC for target cmdline_tester
[ 31%] Built target cmdline_tester_autogen
Scanning dependencies of target cmdline_tester
[ 34%] Building CXX object tests/cmdline_tester/CMakeFiles/cmdline_tester.dir/cmdline_tester_autogen/mocs_compilation.cpp.o
[ 37%] Building CXX object tests/cmdline_tester/CMakeFiles/cmdline_tester.dir/cmdline_tester.cpp.o
/tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp: In function 'int main(int, char**)':
/tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:65:14: warning: 'void QTime::start()' is deprecated: Use QElapsedTimer instead [-Wdeprecated-declarations]
   time.start();
              ^
In file included from /home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/QTime:1,
                 from /tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:27:
/home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/qdatetime.h:235:55: note: declared here
     QT_DEPRECATED_X("Use QElapsedTimer instead") void start();
                                                       ^~~~~
/tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:67:27: warning: 'int QTime::elapsed() const' is deprecated: Use QElapsedTimer instead [-Wdeprecated-declarations]
   duration = time.elapsed();
                           ^
In file included from /home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/QTime:1,
                 from /tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:27:
/home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/qdatetime.h:237:54: note: declared here
     QT_DEPRECATED_X("Use QElapsedTimer instead") int elapsed() const;
                                                      ^~~~~~~
/tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:83:16: warning: 'void QTime::start()' is deprecated: Use QElapsedTimer instead [-Wdeprecated-declarations]
     time.start();
                ^
In file included from /home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/QTime:1,
                 from /tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:27:
/home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/qdatetime.h:235:55: note: declared here
     QT_DEPRECATED_X("Use QElapsedTimer instead") void start();
                                                       ^~~~~
/tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:89:31: warning: 'int QTime::elapsed() const' is deprecated: Use QElapsedTimer instead [-Wdeprecated-declarations]
       duration = time.elapsed();
                               ^
In file included from /home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/QTime:1,
                 from /tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/tests/cmdline_tester/cmdline_tester.cpp:27:
/home/spack/spack/opt/spack/linux-centos8-aarch64/gcc-8.3.1/qt-5.15.2-afcl3a5hfjfjszdrcm7qs2ewpc7nlfws/include/QtCore/qdatetime.h:237:54: note: declared here
     QT_DEPRECATED_X("Use QElapsedTimer instead") int elapsed() const;
                                                      ^~~~~~~
[ 40%] Building CXX object tests/cmdline_tester/CMakeFiles/cmdline_tester.dir/cmdlineparser.cpp.o
[ 42%] Linking CXX executable cmdline_tester
[ 42%] Built target cmdline_tester
Scanning dependencies of target testparser_autogen
[ 45%] Automatic MOC for target testparser
[ 45%] Built target testparser_autogen
Scanning dependencies of target testparser
[ 48%] Building CXX object tests/parser/CMakeFiles/testparser.dir/testparser_autogen/mocs_compilation.cpp.o
[ 51%] Building CXX object tests/parser/CMakeFiles/testparser.dir/testparser.cpp.o
[ 54%] Linking CXX executable testparser
[ 54%] Built target testparser
Scanning dependencies of target testscanner_autogen
[ 57%] Automatic MOC for target testscanner
[ 57%] Built target testscanner_autogen
Scanning dependencies of target testscanner
[ 60%] Building CXX object tests/scanner/CMakeFiles/testscanner.dir/testscanner_autogen/mocs_compilation.cpp.o
[ 62%] Building CXX object tests/scanner/CMakeFiles/testscanner.dir/testscanner.cpp.o
[ 65%] Linking CXX executable testscanner
[ 65%] Built target testscanner
Scanning dependencies of target qjson_test_support_autogen
[ 68%] Automatic MOC for target qjson_test_support
[ 68%] Built target qjson_test_support_autogen
Scanning dependencies of target qjson_test_support
[ 71%] Building CXX object tests/qobjecthelper/CMakeFiles/qjson_test_support.dir/qjson_test_support_autogen/mocs_compilation.cpp.o
[ 74%] Building CXX object tests/qobjecthelper/CMakeFiles/qjson_test_support.dir/person.cpp.o
[ 77%] Linking CXX static library libqjson_test_support.a
[ 77%] Built target qjson_test_support
Scanning dependencies of target testqobjecthelper_autogen
[ 80%] Automatic MOC for target testqobjecthelper
[ 80%] Built target testqobjecthelper_autogen
Scanning dependencies of target testqobjecthelper
[ 82%] Building CXX object tests/qobjecthelper/CMakeFiles/testqobjecthelper.dir/testqobjecthelper_autogen/mocs_compilation.cpp.o
[ 85%] Building CXX object tests/qobjecthelper/CMakeFiles/testqobjecthelper.dir/testqobjecthelper.cpp.o
[ 88%] Linking CXX executable testqobjecthelper
[ 88%] Built target testqobjecthelper
Scanning dependencies of target testserializer_autogen
[ 91%] Automatic MOC for target testserializer
[ 91%] Built target testserializer_autogen
Scanning dependencies of target testserializer
[ 94%] Building CXX object tests/serializer/CMakeFiles/testserializer.dir/testserializer_autogen/mocs_compilation.cpp.o
[ 97%] Building CXX object tests/serializer/CMakeFiles/testserializer.dir/testserializer.cpp.o
[100%] Linking CXX executable testserializer
[100%] Built target testserializer

[root@centos8 build]# make test
Running tests...
Test project /tmp/root/spack-stage/spack-stage-qjson-0.9.0-o6lueppsjw6lpugafuibzshlbu7bv6hf/spack-src/build
    Start 1: testparser
1/4 Test #1: testparser .......................   Passed    0.01 sec
    Start 2: testscanner
2/4 Test #2: testscanner ......................***Failed    0.01 sec
    Start 3: testqobjecthelper
3/4 Test #3: testqobjecthelper ................   Passed    0.01 sec
    Start 4: testserializer
4/4 Test #4: testserializer ...................   Passed    0.02 sec

75% tests passed, 1 tests failed out of 4

Total Test time (real) =   0.06 sec

The following tests FAILED:
          2 - testscanner (Failed)
Errors while running CTest
make: *** [Makefile:105: test] Error 8

It took me a long time to solve the problem, but all I know is that the testscanner test case failed. I don't know why it failed. Can you help me analyze the cause?

Information on your system

Tom-python0121 commented 3 years ago

Is there a problem with the source code of the testscanner test case?

Tom-python0121 commented 3 years ago

I've found a workaround patch:https://github.com/flavio/qjson/pull/117/commits/e1e7941022ef6a76217427435d59a7039b4c995e