Skip to content

What is expected result of tests? #149

Closed
@jgfoster

Description

@jgfoster

System

  • OS: macOS Catalina (10.15.6)
  • ruby -v: ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
  • bundle -v: Bundler version 1.17.2
  • bundle info arduino_ci:
  • g++ -v:
    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 11.0.3 (clang-1103.0.32.62)
    Target: x86_64-apple-darwin19.6.0
    Thread model: posix
    InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  • Arduino IDE version: 1.8.13
  • java -version:
    java version "11.0.7" 2020-04-14 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)
  • URL of failing Travis CI job: N/A
  • URL of your Arduino project: https://github.com/Open-Acidification/Open_Acidification_pH-stat_arduino

What is expected result of tests?

I'm looking at arduino_ci for our project and for a class I'm teaching this term. If we do use it I'll likely be making contributions and asking my students to do so as well (if nothing else, to documentation and samples).

I've forked, cloned, and opened a terminal in SampleProjects/DoSomething. When I ran bundle exec arduino_ci_remote.rb, the result was a couple hundred lines of output, including the following:

...Unit testing bad-null.cpp with g++                                          ✗
...Unit testing bad-null.cpp with g++                                          ✗
...Unit testing bad-null.cpp with g++                                          ✗
WARNING: Spurious .bundle folder in 'DoSomething' library
WARNING: Spurious .bundle folder in 'TestSomething' library
fork/exec /Users/jfoster/Arduino.app/Contents/Java/hardware/tools/avr/bin/avr-g++: bad CPU type in executable
                                           ✗
WARNING: Spurious .bundle folder in 'DoSomething' library
WARNING: Spurious .bundle folder in 'TestSomething' library
WARNING: library DoSomething claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (sam) architecture(s).
fork/exec /Users/jfoster/Arduino.app/Contents/Java/tools-builder/ctags/5.8-arduino11/ctags: bad CPU type in executable
                                           ✗
WARNING: Spurious .bundle folder in 'DoSomething' library
WARNING: Spurious .bundle folder in 'TestSomething' library
fork/exec /Users/jfoster/Arduino.app/Contents/Java/hardware/tools/avr/bin/avr-g++: bad CPU type in executable
                                           ✗
Failures: 6

I'm confused by a few things.

  1. I understand that bad-null.cpp is supposed to fail, but my experience with unit testing is that expected failures are reported separately from unexpected failures. Is there a way for an automated script to know that the failures were expected?
  2. I assume that the bad CPU type message is because it is trying to run the tests on uno, due, and leonardo. When I remove the three platforms from .arduino-ci.yaml it still reports bad CPU type but doesn't run any tests. How do I run tests locally (in my case, on my Mac), and not try to run them on the three sample platforms?
  3. Who is complaining about the Spurious .bundle folder and why? In my case this directory contains a config file with BUNDLE_PATH: "vendor/bundle" so that nothing gets installed with root access.
  4. Why is the test looking in the TestSomething directory when I'm in the DoSomething directory?

Arduino or Unit Test Code, Illustrating the Problem

SampleProjects/DoSomething

Arduino Architecture(s) Affected

I'm trying to stay off the Arduino for testing purposes, but my target device is a Mega 2560.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions