Closed Nightwalker-87 closed 5 years ago
Ich würde sagen, da ist ein Fehler in deiner bot-local-override.h
.
Ich habe keine user-spezifische bot-local-override.h
für die Tests eingerichtet, daher die Nachfrage.
Hm, laut der Ausgabe wird aber eine ./bot-local-override.h
eingebunden, die es im Repo gar nicht gibt (es gibt ja nur das leere Template in ./include/
). Wo kommt die denn dann her?
Genau das hab ich mich ja auch gefragt. ;-) Zumal beim Build durch ein stets vorangestelltes git clean -dfx
ja alles was nicht indexiert ist aus dem Verzeichnis gepustet wird...
Edit: Nope, es ist vor dem Build definitiv kein ./bot-local-override.h da. Die wird erst während der Build/Travis-CI Routine da reinkopiert (und offensichtlich während dem Test-Build mitverlinkt) und verschwindet danach sofort wieder, wie ich während dem Build im Dateimanager beobachten konnte. Da ist meiner Einschätzung nach folglich irgendwas faul. Eigentlich sollten die Travis-Tests ja nur ./bot-local-override.h irgendwo hin sichern sofern diese Datei existiert...
Hier ist der Inhalt der Phantom-Datei:
ifndef INCLUDE_BOT_LOCAL_OVERRIDEH
define INCLUDE_BOT_LOCAL_OVERRIDEH
/ Logging-Funktionen /
undef LOG_CTSIM_AVAILABLE /*< Logging zum ct-Sim (PC und MCU) /
undef LOG_DISPLAY_AVAILABLE /*< Logging ueber das LCD-Display (PC und MCU) /
define LOG_STDOUT_AVAILABLE /*< Logging auf die Konsole (nur fuer PC) /
define USE_MINILOG /*< schaltet auf schlankes Logging um /
define CREATE_TRACEFILE_AVAILABLE /*< Aktiviert das Schreiben einer Trace-Datei (nur PC) /
/ Kommunikation /
define BOT_2_SIM_AVAILABLE /*< Soll der Bot mit dem Sim kommunizieren? /
define BOT_2_BOT_AVAILABLE /*< Sollen Bots untereinander kommunizieren? /
define BOT_2_BOT_PAYLOAD_AVAILABLE /*< Aktiviert Payload-Versand per Bot-2-Bot Kommunikation /
/ Display-Funktionen /
define DISPLAY_AVAILABLE /*< Display-Funktionen aktiv /
define KEYPAD_AVAILABLE /*< Keypad-Eingabe vorhanden? /
define DISPLAY_REMOTE_AVAILABLE /*< Sende LCD Anzeigedaten an den Simulator /
define WELCOME_AVAILABLE /*< kleiner Willkommensgruss /
/ Sensorauswertung /
undef MOUSE_AVAILABLE /*< Maus Sensor /
undef MEASURE_MOUSE_AVAILABLE /*< Geschwindigkeiten werden aus den Maussensordaten berechnet /
undef MEASURE_COUPLED_AVAILABLE /*< Geschwindigkeiten werden aus Maus- und Encoderwerten ermittelt und gekoppelt /
undef MEASURE_POSITION_ERRORS_AVAILABLE /*< Fehlerberechnungen bei der Positionsbestimmung /
define BPS_AVAILABLE /*< Bot Positioning System /
/ Umgebungskarte /
define MAP_AVAILABLE /*< Aktiviert die Kartographie /
define MAP_2_SIM_AVAILABLE /*< Sendet die Map zur Anzeige an den Sim /
/ MMC-/SD-Karte als Speichererweiterung (Erweiterungsmodul) /
define SDFAT_AVAILABLE /*< Unterstuetzung fuer FAT-Dateisystem (FAT16 und FAT32) auf MMC/SD-Karte /
/ Hardware-Treiber /
define ADC_AVAILABLE /*< A/D-Konverter /
define SHIFT_AVAILABLE /*< Shift Register /
define ENA_AVAILABLE /*< Enable-Leitungen /
define LED_AVAILABLE /*< LEDs aktiv /
define IR_AVAILABLE /*< Infrarot Fernbedienung aktiv /
define RC5_AVAILABLE /*< Key-Mapping fuer IR-RC aktiv /
/ Sonstiges /
define BEHAVIOUR_AVAILABLE /*< Nur wenn dieser Parameter gesetzt ist, exisitiert das Verhaltenssystem /
define POS_STORE_AVAILABLE /*< Positionsspeicher vorhanden /
define OS_AVAILABLE /*< Aktiviert BotOS fuer Threads und Scheduling /
define ARM_LINUX_BOARD /*< Code fuer ARM-Linux Board aktivieren, wenn ein ARM-Linux- Target ausgewaehlt wurde. Fuehrt den high-level Code und die Verhalten aus */
endif / INCLUDE_BOT_LOCAL_OVERRIDEH /
Das Phänomen ist reproduzierbar und obiges entspricht ganz eindeutig nicht dem Inhalt meiner außerhalb des Projekts gesicherten bot-local-override.h
.
Ach sooo, du führst ein Test-Script aus? Das geht nur dann fehlerfrei, wenn man nicht von Hand Optionen aktiviert oder geändert hat. Die Test-Scripts gehen fest davon aus, dass ct-Bot.h & Co. unverändert sind (weil sie beim Travis-Test ja frisch aus dem Repo kommen).
Na super... :-/ Das heißt ich kann die so gar nicht zum Testen verwenden...
Na ja, die Test-Scripts setzen die Optionen ja selbst. Zwar nicht alle möglichen Kombinationen, aber zumindest mal einige.
Dann müsste ich mir da wohl einen eigenen Test-Fall definieren, der dann über das Repo eingelesen wird.
Ja klar, du kannst für deine eigenen Test-Settings einfach eine neue Datei in tests/{mcu|pc}/
anlegen.
Dann gehe ich mal davon aus, dass dieses Ticket somit gelöst ist. Ich werde die Doku um einen Hinweis zur Verwendung der Travis CI Testscripts ergänzen.
In folgender Konfiguration:
-> aktueller Develop Branch 28059cb0fe0a682805a338a2fac0e8bca136855a -> in /include/bot-logic/available_behaviours.h alle #defines für Verhalten einschalten außer bei den drei veralteten Verhalten -> in ct-bot.h alle #defines für Optionen an -> in ui/available_screens.h alle Screens aktivieren ->
-Wpedantic
aktivliefert neben bereits bekannten Ausgaben u.a. auch folgenden Output (gekürzt):
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_abl.c:82: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_abl.c:82: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ct-Bot.h:107, from ct-Bot.c:27: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ct-Bot.h:107, from ct-Bot.c:27: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_border.c:27: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_border.c:27: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_col.c:28: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_avoid_col.c:28: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_sharps.c:32: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_sharps.c:32: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_pid.c:27: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_calibrate_pid.c:27: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_cancel_behaviour.c:30: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_cancel_behaviour.c:30: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_catch_pillar.c:28: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_catch_pillar.c:28: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./include/bot-local.h:189, from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_classify_objects.c:34: ./bot-local-override.h:39: warning: "ARM_LINUX_DISPLAY" redefined
define ARM_LINUX_DISPLAY "stdout" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
`In file included from ./ct-Bot.h:107, from ./include/bot-logic/bot-logic.h:30, from bot-logic/behaviour_classify_objects.c:34: ./include/bot-local.h:137: note: this is the location of the previous definition
define ARM_LINUX_DISPLAY "/dev/tty1" /*< Konsole fuer Display-Ausgaben auf ARM-Linux-Board. "stdout" fuer Ausgabe auf stdout /`
Ist das bewusst so implementiert oder kommt das durch eine fehlende Abhängigkeit, welche bislang noch nicht aufgefallen ist?