Coder Social home page Coder Social logo

Comments (6)

gerickson avatar gerickson commented on July 27, 2024

% configure --enable-coverage --enable-coverage-reports --disable-docs --enable-debug --enable-optimization=no --enable-stdio-logging-timestamps --without-bluez --without-happy | & tee configure.output
% make -j2 coverage | & tee make-coverage.output
% grep TestAppKeys make-coverage.output
CXX TestAppKeys.o
CXX TestAppKeys.o
CXXLD TestAppKeys
CXXLD TestAppKeys
make TestASN1 TestAppKeys TestArgParser TestCASE TestCodeUtils TestCrypto TestDRBG TestDeviceDescriptor TestDNSResolution TestECDH TestECDSA TestECMath TestEventLogging TestFabricStateDelegate TestInetAddress TestInetBuffer TestInetEndPoint TestInetTimer TestKeyExport TestKeyIds TestMsgEnc TestNetworkInfo TestPASE TestPacketBuffer TestPasscodeEnc TestPersistedCounter TestPersistedStorage TestProfileStringSupport TestProvHash TestRetainedPacketBuffer TestSerialNumUtils TestSystemObject TestSystemTimer TestTAKE TestTLV TestTimeUtils TestTimeZone TestWeaveCert TestWeaveEncoding TestWeaveFabricState TestWeaveSignature infratest wsuptest TestErrorStr TestStatusReportStr TestThermostatStatus TestWoble TestPairingCodeUtils TestResourceIdentifier TestTDM TestTDM TestPathStore TestWdmUpdateEncoder TestWdmUpdateResponse TestWarm TestWeaveProvBundle test-weave-device-descriptor-encode.sh test-Verhoeff.sh TestWeaveTool.py
make[4]: 'TestAppKeys' is up to date.
PASS: TestAppKeys
make TestASN1 TestAppKeys TestArgParser TestCASE TestCodeUtils TestCrypto TestDRBG TestDeviceDescriptor TestDNSResolution TestECDH TestECDSA TestECMath TestEventLogging TestFabricStateDelegate TestInetAddress TestInetBuffer TestInetEndPoint TestInetTimer TestKeyExport TestKeyIds TestMsgEnc TestNetworkInfo TestPASE TestPacketBuffer TestPasscodeEnc TestPersistedCounter TestPersistedStorage TestProfileStringSupport TestProvHash TestRetainedPacketBuffer TestSerialNumUtils TestSystemObject TestSystemTimer TestTAKE TestTLV TestTimeUtils TestTimeZone TestWeaveCert TestWeaveEncoding TestWeaveFabricState TestWeaveSignature infratest wsuptest TestErrorStr TestStatusReportStr TestThermostatStatus TestWoble TestPairingCodeUtils TestResourceIdentifier TestTDM TestTDM TestPathStore TestWdmUpdateEncoder TestWdmUpdateResponse TestWarm TestWeaveProvBundle test-weave-device-descriptor-encode.sh test-Verhoeff.sh TestWeaveTool.py
make[3]: 'TestAppKeys' is up to date.
PASS: TestAppKeys

Note that TestAppKeys.o is built twice and TestAppKeys is run twice. However, one is run at sub-make level four (4) and the other at three (3).

from openweave-core.

gerickson avatar gerickson commented on July 27, 2024

The problem seems to be focused on the directory src/test-apps and can be trivially simplified and reproduced with this invocation:

% make -C src/test-apps -j2 coverage TESTS=TestAppKeys

from openweave-core.

gerickson avatar gerickson commented on July 27, 2024

If I run any of:

% make -j2 -C third_party/{nlassert,nlfaultinjection,nlio}/repo/tests coverage

I only see one test pass indicating that the issue is specific to the Weave unit and functional tests.

from openweave-core.

gerickson avatar gerickson commented on July 27, 2024

If I simplify src/test-apps/Makefile.am down to the bare minimum needed to support TestAppKeys as a test program, the duplication goes away.

from openweave-core.

gerickson avatar gerickson commented on July 27, 2024

The core problem seems to be the following:

SUBDIRS                                               = \
    wrapper-tests/jni                                   \
    $(NULL)

In fact, just defining:

SUBDIRS = 

creates the problem.

from openweave-core.

gerickson avatar gerickson commented on July 27, 2024

This was resolved by having the local coverage target in src/test-apps depend on a local, rather than recursive, check target. Having both 'coverage' as the target make command goal and a local dependency on 'check' was causing the double sub-directory recursion and unit test execution with parallel build jobs.

from openweave-core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.