DKnoto opened a new issue, #4465:
URL: https://github.com/apache/netbeans/issues/4465

   ### Apache NetBeans version
   
   Apache NetBeans 14
   
   ### What happened
   
   I use NetBeans 8.2 plugins to work on C/C++ projects. I implemented the unit 
tests using the GoogleTest library according to the guidelines in the 
documentation [Adding Unit Tests to a C 
Project](https://netbeans.apache.org/kb/docs/cnd/c-unit-test.html). This worked 
without any major problems until NB version 12.4. Unfortunately, since version 
12.5, support for unit tests compatible with this model has collapsed.
   
   **NetBeans 14 Tests Results**:
   
   
![NB-14-NST-Test_Results](https://user-images.githubusercontent.com/1998807/182581146-faff41d9-cad1-452a-a579-e7a42a9be68b.png)
   
   **NetBeans 14 Output Clean Build**:
   
   
![NB-14-NST-Output_Clean_Build](https://user-images.githubusercontent.com/1998807/182582090-8a20dfb7-3bc8-4fc1-b8fe-a6419d9414e9.png)
   
   **NetBeans 14 Output Build Test**:
   
   `"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= 
.build-conf
   make[1]: Wejście do katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   "/usr/bin/make"  -f nbproject/Makefile-Debug.mk 
dist/Debug/GNU-Linux/libovation2d-pointers.a
   make[2]: Wejście do katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   make[2]: 'dist/Debug/GNU-Linux/libovation2d-pointers.a' jest aktualne.
   make[2]: Opuszczenie katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   make[1]: Opuszczenie katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   "/usr/bin/make" -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-tests-conf
   make[1]: Wejście do katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   "/usr/bin/make"  -f nbproject/Makefile-Debug.mk 
dist/Debug/GNU-Linux/libovation2d-pointers.a
   make[2]: Wejście do katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   make[2]: 'dist/Debug/GNU-Linux/libovation2d-pointers.a' jest aktualne.
   make[2]: Opuszczenie katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   make[1]: Opuszczenie katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   "/usr/bin/make" -f nbproject/Makefile-Debug.mk SUBPROJECTS= .test-conf
   make[1]: Wejście do katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'
   %SUITE_STARTING% Highway Pointers Tests
   %SUITE_STARTED%
   %TEST_STARTED% CheckPointer1::EmptyInputNotInitialized (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::EmptyInputNotInitialized 
(newsimpletest)
   %TEST_STARTED% CheckPointer1::EmptyInputInitialized (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::EmptyInputInitialized (newsimpletest)
   %TEST_STARTED% CheckPointer1::BadFirstChar (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::BadFirstChar (newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodFirstCharButEmptySecondChar (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::GoodFirstCharButEmptySecondChar 
(newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodFirstCharButSecondCharDiff_H_or_h 
(newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::GoodFirstCharButSecondCharDiff_H_or_h 
(newsimpletest)
   %TEST_STARTED% 
CheckPointer1::GoodFirstCharSecondCharEqualHiHAndFirstDigitEmpty (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstCharSecondCharEqualHiHAndFirstDigitEmpty (newsimpletest)
   %TEST_STARTED% 
CheckPointer1::GoodFirstCharSecondCharEqualLoHAndFirstDigitEmpty (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstCharSecondCharEqualLoHAndFirstDigitEmpty (newsimpletest)
   %TEST_STARTED% 
CheckPointer1::GoodFirstAndSecondCharButFirstDigitIsLessThanNine (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstAndSecondCharButFirstDigitIsLessThanNine (newsimpletest)
   %TEST_STARTED% 
CheckPointer1::GoodFirstAndSecondCharButFirstDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstAndSecondCharButFirstDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodFirstAndSecondCharButIndexLessThanOne 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstAndSecondCharButIndexLessThanOne (newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodFirstAndSecondCharAndIndexEqualMinimum 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstAndSecondCharAndIndexEqualMinimum (newsimpletest)
   %TEST_STARTED% 
CheckPointer1::GoodFirstAndSecondAndThirdCharButSecondDigitIsLessThanZero 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstAndSecondAndThirdCharButSecondDigitIsLessThanZero 
(newsimpletest)
   %TEST_STARTED% 
CheckPointer1::GoodFirstAndSecondAndThirdCharButSecondDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer1::GoodFirstAndSecondAndThirdCharButSecondDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodAllChars (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::GoodAllChars (newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodAllCharsMaximumPointerIndex (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::GoodAllCharsMaximumPointerIndex 
(newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodAllCharsButIntputTooLong (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::GoodAllCharsButIntputTooLong 
(newsimpletest)
   %TEST_STARTED% CheckPointer1::GoodAllCharsButIntputTooLong2 (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer1::GoodAllCharsButIntputTooLong2 
(newsimpletest)
   %TEST_STARTED% CheckPointer2::EmptyInputNotInitialized (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::EmptyInputNotInitialized 
(newsimpletest)
   %TEST_STARTED% CheckPointer2::EmptyInputInitialized (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::EmptyInputInitialized (newsimpletest)
   %TEST_STARTED% CheckPointer2::BadFirstChar (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::BadFirstChar (newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodFirstCharButEmptySecondChar (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::GoodFirstCharButEmptySecondChar 
(newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodFirstCharButSecondCharDiff_H_or_h 
(newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::GoodFirstCharButSecondCharDiff_H_or_h 
(newsimpletest)
   %TEST_STARTED% 
CheckPointer2::GoodFirstCharSecondCharEqualHiHAndFirstDigitEmpty (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstCharSecondCharEqualHiHAndFirstDigitEmpty (newsimpletest)
   %TEST_STARTED% 
CheckPointer2::GoodFirstCharSecondCharEqualLoHAndFirstDigitEmpty (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstCharSecondCharEqualLoHAndFirstDigitEmpty (newsimpletest)
   %TEST_STARTED% 
CheckPointer2::GoodFirstAndSecondCharButFirstDigitIsLessThanNine (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstAndSecondCharButFirstDigitIsLessThanNine (newsimpletest)
   %TEST_STARTED% 
CheckPointer2::GoodFirstAndSecondCharButFirstDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstAndSecondCharButFirstDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodFirstAndSecondCharButIndexLessThanOne 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstAndSecondCharButIndexLessThanOne (newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodFirstAndSecondCharAndIndexEqualMinimum 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstAndSecondCharAndIndexEqualMinimum (newsimpletest)
   %TEST_STARTED% 
CheckPointer2::GoodFirstAndSecondAndThirdCharButSecondDigitIsLessThanZero 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstAndSecondAndThirdCharButSecondDigitIsLessThanZero 
(newsimpletest)
   %TEST_STARTED% 
CheckPointer2::GoodFirstAndSecondAndThirdCharButSecondDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer2::GoodFirstAndSecondAndThirdCharButSecondDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodAllChars (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::GoodAllChars (newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodAllCharsMaximumPointerIndex (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::GoodAllCharsMaximumPointerIndex 
(newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodAllCharsButIntputTooLong (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::GoodAllCharsButIntputTooLong 
(newsimpletest)
   %TEST_STARTED% CheckPointer2::GoodAllCharsButIntputTooLong2 (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer2::GoodAllCharsButIntputTooLong2 
(newsimpletest)
   %TEST_STARTED% CheckPointer3::EmptyInputNotInitialized (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::EmptyInputNotInitialized 
(newsimpletest)
   %TEST_STARTED% CheckPointer3::EmptyInputInitialized (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::EmptyInputInitialized (newsimpletest)
   %TEST_STARTED% CheckPointer3::BadFirstChar (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::BadFirstChar (newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodFirstCharButEmptySecondChar (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::GoodFirstCharButEmptySecondChar 
(newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodFirstCharButSecondCharDiff_H_or_h 
(newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::GoodFirstCharButSecondCharDiff_H_or_h 
(newsimpletest)
   %TEST_STARTED% 
CheckPointer3::GoodFirstCharSecondCharEqualHiHAndFirstDigitEmpty (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstCharSecondCharEqualHiHAndFirstDigitEmpty (newsimpletest)
   %TEST_STARTED% 
CheckPointer3::GoodFirstCharSecondCharEqualLoHAndFirstDigitEmpty (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstCharSecondCharEqualLoHAndFirstDigitEmpty (newsimpletest)
   %TEST_STARTED% 
CheckPointer3::GoodFirstAndSecondCharButFirstDigitIsLessThanNine (newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstAndSecondCharButFirstDigitIsLessThanNine (newsimpletest)
   %TEST_STARTED% 
CheckPointer3::GoodFirstAndSecondCharButFirstDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstAndSecondCharButFirstDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodFirstAndSecondCharButIndexLessThanOne 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstAndSecondCharButIndexLessThanOne (newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodFirstAndSecondCharAndIndexEqualMinimum 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstAndSecondCharAndIndexEqualMinimum (newsimpletest)
   %TEST_STARTED% 
CheckPointer3::GoodFirstAndSecondAndThirdCharButSecondDigitIsLessThanZero 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstAndSecondAndThirdCharButSecondDigitIsLessThanZero 
(newsimpletest)
   %TEST_STARTED% 
CheckPointer3::GoodFirstAndSecondAndThirdCharButSecondDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_FINISHED% time=1 
CheckPointer3::GoodFirstAndSecondAndThirdCharButSecondDigitIsGreaterThanNine 
(newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodAllChars (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::GoodAllChars (newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodAllCharsMaximumPointerIndex (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::GoodAllCharsMaximumPointerIndex 
(newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodAllCharsButIntputTooLong (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::GoodAllCharsButIntputTooLong 
(newsimpletest)
   %TEST_STARTED% CheckPointer3::GoodAllCharsButIntputTooLong2 (newsimpletest)
   %TEST_FINISHED% time=1 CheckPointer3::GoodAllCharsButIntputTooLong2 
(newsimpletest)
   %SUITE_FINISHED% time=0
   make[1]: Opuszczenie katalogu '/home/dknoto/Projekty/Ovation2D-Pointers'`
   
   **NetBeans 12.4 Tests Results**:
   
   ![NB-12 
4-NST-Test_Results](https://user-images.githubusercontent.com/1998807/182580986-ec7ecaa6-55d4-4536-a0d8-e6442d58b27b.png)
   
   **NetBeans 14 Output Build Test**:
   
   The content is identical to that of version 14.
   
   
   ### How to reproduce
   
   Implement unit tests using my **NBNewSimpleTestPrinter** class:
   
   `/*
    * File:   RunAllTests.cpp
    * Author: DKnoto
    */
   
   #include <string>
   
   #include <gtest/gtest.h>
   #include <stdlib.h>
   
   namespace {
       const char* TEST_SUITE_NAME = "Highway Pointers Tests";
   }
   
   using ::testing::EmptyTestEventListener;
   using ::testing::InitGoogleTest;
   using ::testing::Test;
   using ::testing::TestCase;
   using ::testing::TestEventListeners;
   using ::testing::TestInfo;
   using ::testing::TestPartResult;
   using ::testing::UnitTest;
   
   namespace
   {
       class NBNewSimpleTestPrinter : public EmptyTestEventListener
       {
           std::string currentTestName;
   
       private:
           void OnTestProgramStart(const UnitTest& unit_test) override
           {
           }
   
           void OnTestProgramEnd(const UnitTest& unit_test) override
           {
               fprintf(stdout, "%%SUITE_FINISHED%% time=0\n");
               fflush(stdout);
           }
   
           void OnTestStart(const TestInfo& test_info) override
           {
               currentTestName.assign(test_info.test_case_name());
               currentTestName.append("::");
               currentTestName.append(test_info.name());
               fprintf(stdout,
                   "%%TEST_STARTED%% %s (newsimpletest)\n",
                   currentTestName.c_str());
               fflush(stdout);
           }
   
           void OnTestPartResult(const TestPartResult& test_part_result) 
override
           {
               if (!test_part_result.failed())
                   return;
               fprintf(stdout,
                   "%%TEST_FAILED%% time=0 testname=%s (newsimpletest) 
message=%s:%d, %s\n",
                   currentTestName.c_str(),
                   test_part_result.file_name(),
                   test_part_result.line_number(),
                   test_part_result.summary());
               fflush(stdout);
           }
   
           void OnTestEnd(const TestInfo& test_info) override
           {
               fprintf(stdout,
                   "%%TEST_FINISHED%% time=1 %s (newsimpletest)\n",
                   currentTestName.c_str());
               fflush(stdout);
           }
       };
   }
   
   void initGoogleTest(int argc, char **argv, const char* suiteName)
   {
       fprintf(stdout, "%%SUITE_STARTING%% %s\n", suiteName);
       fflush(stdout);
   
       testing::InitGoogleTest(&argc, argv);
   
       UnitTest& unit_test = *UnitTest::GetInstance();
       TestEventListeners& listeners = unit_test.listeners();
       delete listeners.Release(listeners.default_result_printer());
       listeners.Append(new NBNewSimpleTestPrinter);
   
       fprintf(stdout, "%%SUITE_STARTED%%\n");
       fflush(stdout);
   }
   
   int main(int argc, char **argv)
   {
       initGoogleTest(argc, argv, TEST_SUITE_NAME);
       return RUN_ALL_TESTS();
   }
   `
   
   ### Did this work correctly in an earlier version?
   
   Apache NetBeans 12.4
   
   ### Operating System
   
   Linux 5.17.12-100.fc34.x86_64 #1 SMP PREEMPT
   
   ### JDK
   
   Java 11.0.15; OpenJDK 64-Bit Server VM 11.0.15+10
   
   ### Apache NetBeans packaging
   
   Apache NetBeans provided installer
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit a pull request?
   
   No
   
   ### Code of Conduct
   
   Yes


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to