Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not compile tests from included libraries #188

Closed
jgfoster opened this issue Oct 26, 2020 · 4 comments
Closed

Do not compile tests from included libraries #188

jgfoster opened this issue Oct 26, 2020 · 4 comments
Labels
bug Something isn't working duplicate This issue or pull request already exists rubygem Ruby code is affected

Comments

@jgfoster
Copy link
Member

I have added the Arduino CI enabled version of LiquidCrystal to another library and it finds it and properly references the headers. My problem is that it also tries to compile the test directories and I only want the src/ files.

A portion of .arduino-ci.yml follows:

unittest:
    exclude_dirs:
        - "/Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/test/"
    platforms:
        - mega2560
    libraries:
      - "LiquidCrystal"

Following is the error. From the "Last command" you can see that it is including .cpp files from LiquidCrystal/test/, and I don't want those. I believe it is just including everything under libraries/LiquidCrystal. I've tried to exclude the directory (see above). Any advice?

Located Arduino binary...                              /Applications/Arduino.app
The set of compilers (1) isn't empty...                                        ✓
Checking g++ version... 
    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
    Apple clang version 12.0.0 (clang-1200.0.32.21)
    Target: x86_64-apple-darwin19.6.0
    Thread model: posix
    InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
...Checking g++ version                                                        ✓
libasan availability for g++...                                             true
Requested unittest platform 'mega2560' is defined in 'platforms' YML...        ✓
Using pre-existing library...                                      LiquidCrystal
Unit testing Blink.cpp with g++... 

Last command:  $ g++ -std=c++0x -o /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/unittest_Blink.cpp.bin -DARDUINO=100 -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -D__AVR_ATmega2560__ -DARDUINO_CI -I/Users/jfoster/Documents/Arduino/libraries/TankControllerLib/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/arduino -I/Users/jfoster/Documents/Arduino/libraries/TankControllerLib/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/unittest -I/Users/jfoster/Documents/Arduino/libraries/TankControllerLib/src/Devices -I/Users/jfoster/Documents/Arduino/libraries/TankControllerLib/src -I/Users/jfoster/Documents/Arduino/libraries/TankControllerLib/src/UIState -I/Users/jfoster/Documents/Arduino/libraries/LiquidCrystal -I/Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/src /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/arduino/Arduino.cpp /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/arduino/Godmode.cpp /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/arduino/stdlib.cpp /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/unittest/ArduinoUnitTests.cpp /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/src/Devices/LiquidCrystal_TC.cpp /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/src/TankControllerLib.cpp /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/src/UIState/MainMenu.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal_CI.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/test/BaseClass.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/test/Common.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/test/TestClass.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/arduino/Arduino.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/arduino/Godmode.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/arduino/stdlib.cpp /Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/cpp/unittest/ArduinoUnitTests.cpp /Users/jfoster/Documents/Arduino/libraries/TankControllerLib/test/Blink.cpp

/Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/test/Common.cpp:91:3: error: unknown type name 'LiquidCrystal_Test'; did you mean 'LiquidCrystal_Base'?
  LiquidCrystal_Test lcd1(rs, enable, d4, d5, d6, d7);
  ^~~~~~~~~~~~~~~~~~
  LiquidCrystal_Base
/Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:54:7: note: 'LiquidCrystal_Base' declared here
class LiquidCrystal_Base : public Print {
      ^
/Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/test/Common.cpp:92:3: error: unknown type name 'LiquidCrystal_Test'; did you mean 'LiquidCrystal_Base'?
  LiquidCrystal_Test lcd2(rs, rw, enable, d4, d5, d6, d7);
  ^~~~~~~~~~~~~~~~~~
  LiquidCrystal_Base
/Users/jfoster/Documents/Arduino/libraries/LiquidCrystal/src/LiquidCrystal.h:54:7: note: 'LiquidCrystal_Base' declared here
class LiquidCrystal_Base : public Print {
      ^
@ianfixes ianfixes added bug Something isn't working duplicate This issue or pull request already exists rubygem Ruby code is affected labels Oct 27, 2020
@ianfixes
Copy link
Collaborator

This may be a duplicate of #168, can you see if #183 fixes it?

@jgfoster
Copy link
Member Author

What is the best way to test #183? There are 57 files changed, so this doesn't seem like something to test by hand. Should I add ianfixes as a remote, then checkout that branch and copy it into vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0? It would be one less step if it were pushed from ianfixes to arduino_ci as a branch.

@jgfoster
Copy link
Member Author

Yes, #183 fixes it. Thanks!

@ianfixes
Copy link
Collaborator

ianfixes commented Oct 27, 2020

You can get the gem directly from github by putting this in your Gemfile:

gem 'arduino_ci', git: 'https://github.com/ianfixes/arduino_ci.git', branch: '2020-10-16_suggestions'

edit: Nice! I'm glad to hear it worked!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working duplicate This issue or pull request already exists rubygem Ruby code is affected
Projects
None yet
Development

No branches or pull requests

2 participants