Giter VIP home page Giter VIP logo

Comments (5)

dirk-thomas avatar dirk-thomas commented on July 28, 2024

Since the package already uses CMake why not use the standard approach:

  • clone repo
  • invoke cmake
  • invoke make test

ament_tools will handle it well even if it is just a plain CMake project.

from freertps.

codebot avatar codebot commented on July 28, 2024

this repo has another level of indirection due to the desire to build multiple times with different cross-compilers, and (at least, according to my current understanding) CMake only allows one declaration of the C compiler per project. At least, I couldn't figure out how to ask CMake to build with different C compilers. So what currently happens is:

  • clone repo
  • invoke make
  • this spins through the SYSTEMS environment variable, which can have more than one target system (e.g., native-posix, stm32-whatever, etc.). For each of those, it invokes CMake separately

However, the default "make" just builds it natively, assuming it's running on a POSIX host. That is the idea for just a plain "make test" as well, to do a minimal "yes, we can send hello-world from talker to listener" simple standalone test, without any other infrastructure being required. 😀 🐔

On Fri, Jan 8, 2016 at 4:01 PM, Dirk Thomas [email protected]
wrote:

Since the package already uses CMake why not use the standard approach:

  • clone repo
  • invoke cmake
  • invoke make test

ament_tools will handle it well even if it is just a plain CMake project.


Reply to this email directly or view it on GitHub
#26 (comment).

from freertps.

jacquelinekay avatar jacquelinekay commented on July 28, 2024

how about these steps

  • clone repo
  • invoke make (which invokes cmake under the hood, with existing machinery)
  • invoke make test
  • test will run; confirmation of messages getting passed will fly across the terminal

and this too

  • clone repo into ROS workspace
  • build with ament
  • same tests will get run with ament test, maybe with the addition of launch to automatically check console output

Also:

I like the idea of reusing the existing apps by creating a test executable that forks those processes, since code reuse is always great, but this would probably only work on POSIX; is that OK?

from freertps.

codebot avatar codebot commented on July 28, 2024

👍 that sounds like a good plan. I just fixed it now so that freertps can talk with itself finally, no matter which side is started first 😥 I'm not sure where the existing apps other than the simplest talker/listener string blasters should be moved, since they (should) be using the auto-generated ROS2 message structure and serializers. Perhaps another repo called freertps_ros2_mcu_demos or something? The idea is that such a repo would be using freertps and the freertps ros2 message CDR stuff currently in mega_genmsg.py to create ROS2-compatible messages without incurring the overhead of all of rclc and friends. Although of course eventually the goal is for rclc to be so small that it can be used directly on MCU's, it's always going to be larger than the super-simple, bare-bones "send an IMU message every 100ms" type of thing.

from freertps.

jacquelinekay avatar jacquelinekay commented on July 28, 2024

A related task is configuring Jenkins to do what we want once there are automated tests in place 💪 I just added the option to test a branch for the freertps project on ci.ros2.org, which is useful for my workflow since I like branches... I tested it by making a bogus branch test_jenkins which puts trash in the CMakeLists.txt. Predictably, the CI job for that branch failed. So I think the feature works...

http://ci.ros2.org/job/freertps/18/

from freertps.

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.