RFD-FHEM / RFFHEM

Counterpart of SIGNALDuino, it's the code for FHEM to work with the data received from the uC
GNU General Public License v3.0
44 stars 33 forks source link

UnitTest - Anregungen | weitere Verfahrensweise | Fragen | Klärungen ... #676

Open HomeAutoUser opened 4 years ago

HomeAutoUser commented 4 years ago

https://github.com/RFD-FHEM/RFFHEM/blob/ac06a72be76740c2b035e37a0ba2bfdd0aa9d4d0/UnitTest/tests/test_DeviceData_rmsg-definition.txt#L69

Wie geht es hier weiter? Was wertest du aus oder möchtest du auswerten?

sidey79 commented 4 years ago

Meine Sicht ist, dass in dem Prüfdaten (JSON Datei) die Anzahl an Dispatches hinterlegt sein müsste. Derzeit ist die Anzahl an Wiederholungen dokumentiert, aber die ist im SIGNALDuino Code ja nicht prüfbar da auch nicht releavant.

HomeAutoUser commented 4 years ago

Meine Sicht ist, dass in dem Prüfdaten (JSON Datei) die Anzahl an Dispatches hinterlegt sein müsste.

Ja bei manchen ist der Eintrag repeats vorhanden.

Derzeit ist die Anzahl an Wiederholungen dokumentiert, aber die ist im SIGNALDuino Code ja nicht prüfbar da auch nicht releavant.

Interprätiere ich das so, das du den Test so formuliert hast, das man es nicht prüfen kann? Zum Verständnis würde ich ja nur im Test prüfen ob der Eintrag repeats vorhanden ist und ggf. in einem 2. Test ob die Anzahl der dort eingetragen repeats gleich ist.

Testen im Code kannst du nur derzeit, indem du das Attribut maxMuMsgRepeat setzt und dann schaust wie oft hier

2019.10.30 20:52:01 2: autocreate: define FileLog_FLAMINGO_CBFAD2 FileLog ./log/FLAMINGO_CBFAD2-%Y-%m.log FLAMINGO_CBFAD2
2019.10.30 20:52:01 4: sduino_dummy: Decoded matched MU Protocol id 13.1 dmsg P13.1#CBFAD2 length 24 dispatch(2/10) RSSI = -74
2019.10.30 20:52:01 4: sduino_dummy Dispatch: P13.1#CBFAD2, Dropped due to short time or equal msg
2019.10.30 20:52:01 4: sduino_dummy: Decoded matched MU Protocol id 13.1 dmsg P13.1#CBFAD2 length 24 dispatch(3/10) RSSI = -74
2019.10.30 20:52:01 4: sduino_dummy Dispatch: P13.1#CBFAD2, Dropped due to short time or equal msg
2019.10.30 20:52:01 4: sduino_dummy: Decoded matched MU Protocol id 13.1 dmsg P13.1#CBFAD2 length 24 dispatch(4/10) RSSI = -74
2019.10.30 20:52:01 4: sduino_dummy Dispatch: P13.1#CBFAD2, Dropped due to short time or equal msg
2019.10.30 20:52:01 4: sduino_dummy: Fingerprint for MU Protocol id 34 -> QUIGG | LIBRA matches, trying to demodulate
2019.10.30 20:52:02 4: sduino_dummy: Fingerprint for MU Protocol id 63 -> Warema matches, trying to demodulate

dispatcht wurde. Der dort dispatchte Wert - 1 sind die repeats.

sidey79 commented 4 years ago

Wenn ich es richtig in Erinnerung habe, dann gibt der Wert Repeats heute an, wie viele Wiederholungen einer Nachricht im Signal enthalten sind.

Das SIGNALDuino Modul kennt aber in diesem Sinne keine "Wiederholungen". Diese werden nirgendwo ausgegeben noch berücksichtigt.

Es werden allerdings Dispatches für jede erkannte Nachricht abgesetzt. Das ist vermutlich oft mit der Anzahl der Wiederholungen identisch, allerdings nicht in allen Fällen.

Daher, repeats im Sinne von wie viele sind im Signal ist für einen Test eher unwichtig. Wie viele dispatches sollten erfolgen, kann getestet werden.

HomeAutoUser commented 4 years ago

Mit diesem Wissen würde ich ja vorschlagen, wir ändern den Text im Test, das es nicht zu weiteren Stolperstellen kommen kann. Zusätzlich würde ich vorschlagen, den bisherigen Test so zu modifizieren, das

1.) Prüfung auf repeats Eintrag JA / nein 2.) unsere repeats (Textfeld im Test) so zu benennen, das es Dispatchwiederholungen sind (ungern aber die Bezeichung repeats abändern ;-) im Json )

sidey79 commented 4 years ago

Wieso nicht repeats durch dispatches im json ändern?

HomeAutoUser commented 4 years ago

Ja es ginge ... augenroll da muss ich den Code anpassen. Da machst du aber den Test so wie wir wollen :-D

Kommen wir aber nicht in Kollisionen mit der Attributbezeichnung ? Wir beeinflussen das mit der Definierung im maxMuMsgRepeat Attribut.

Wäre nicht MsgRepeat das selbe wie dispatch? Ich bin nur für "Gleichnamiges" um nicht immer im Kopf umzudenken ;-) Sollte es nicht sein, dann gern dispatch.

sidey79 commented 4 years ago

Ich dachte es wäre nur ein suchen / ersetzen, aber Du steckst da tiefer drin wo alles angepasst werden müsste.

maxMuMsgRepeat haben wir damals so benannt, weil wir dachten es wären die Anzahl an Wiederholungen. Erst seit dem wir den Test haben, weiss ich dass wir die Anzahl der Wiederholungen im Signal nicht zählen. Das jetzt umbenennen ist halt blöde. Korrekter wäre aber auch hier maxMUMsgDispatches

HomeAutoUser commented 4 years ago

Ich dachte es wäre nur ein suchen / ersetzen, aber Du steckst da tiefer drin wo alles angepasst werden müsste.

ich schaue es mir mal an und auf die Schnelle denke ich, das die Ersetzung von repeats durch dispatches am sinnvollsten wäre.

maxMuMsgRepeat haben wir damals so benannt, weil wir dachten es wären die Anzahl an Wiederholungen. Erst seit dem wir den Test haben, weiss ich dass wir die Anzahl der Wiederholungen im Signal nicht zählen. Das jetzt umbenennen ist halt blöde. Korrekter wäre aber auch hier maxMUMsgDispatches

Ich habe im Kopf eine Anpassung welche wir dann einfach Einpflegen und als "Kompatiblitätsschleife" drin lassen.

Somit können wir 1) Namen maxMuMsgRepeat anpassen in maxMUMsgDispatches 2) im JSON den Namen repeats anpassen in dispatches 3) Tests anpassen

Ich muss nur aufpassen in welchen Schritten wir das Vorhaben angehen.

Verständnissfrage: Wenn ich einen Test anpasse und diesen als PR mit einreiche, wird dann bei dem TravisTest dieser PR genutzt oder noch der "alte" Stand des Tests?

sidey79 commented 4 years ago

Klingt nach einem Plan :) Wenn Du einen Test anpasst und diesen über einen PR einreichst, dann wird der Test ausgeführt, der in diesem PR definiert ist

Es ist somit sinnvoll, den Test und die Änderung des Attributes in einem PR zu erledigen.

HomeAutoUser commented 4 years ago

Ich habe schonmal begonnen es abzuändern und werde morgen bestimmt das ganze Überführen. Das Einzige wobei ich mir das Recht nahm, das ich im JSON repeats eindeutig benannt habe in dispatch_repeats. Im Branch https://github.com/RFD-FHEM/SIGNALduino_TOOL/tree/pre-release ist die Fassung schon hinterlegt.

Dia Attributsumbenennung im SIGNALduino habe ich noch nicht angetastet weil diese ist ja vom TOOL erstmal unabhängig und das wäre dann der nächste Punkt.

HomeAutoUser commented 4 years ago

Hallo, ich habe mir das nochmal überlegt bzw angesehen mit dem Attributnamen im Signalduino.

Für uns kommen nur 3 Fälle in Betracht.

Also nehmen wir erstmal nur die JSON Änderung in Betracht mit den nötigen Tests welche angepasst werden mussten.

HomeAutoUser commented 4 years ago

@sidey79 kann es sein, das der Test test_sub_SIGNALduino_Set-definition.txt derzeit nicht durchläuft weil ein Fehler existent ist oder der Test nicht angepasst wurde? ... fiel mir soeben auf ;-)

# Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 253, 253 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SR;;R=3;;P0=500;; | 253      |
    # |      |                   |         | P1=-8000;;P2=-350 |          |
    # |      |                   |         | 0;;P3=-1500;;D=01 |          |
    # |      |                   |         | 03020302;;        |          |
    # |      |                   |         |                   |          |
    # | [0]  | SR;R=3;P0=500;P1= | !exists | <DOES NOT EXIST>  |          |
    # |      | -8000;P2=-3500;P3 |         |                   |          |
    # |      | =-1500;D=01030203 |         |                   |          |
    # |      | 02;               |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SR;R=3;P0=500;P1=-8000;P2=-3500;P3=-1500;D=0103020302;'
    # ]
# Failed test 'checking set sendMsg ID:0 (P0#0101#R3#C500) without cc1101  devIo closed'
# at (eval 6079) line 500.
    # Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 262, 262 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SR;;R=3;;P0=500;; | 262      |
    # |      |                   |         | P1=-5000;;P2=-250 |          |
    # |      |                   |         | 0;;P3=-500;;P4=-2 |          |
    # |      |                   |         | 0000;;D=010302020 |          |
    # |      |                   |         | 30302020304;;     |          |
    # |      |                   |         |                   |          |
    # | [0]  | SR;R=3;P0=500;P1= | !exists | <DOES NOT EXIST>  |          |
    # |      | -5000;P2=-2500;P3 |         |                   |          |
    # |      | =-500;P4=-20000;D |         |                   |          |
    # |      | =0103020203030202 |         |                   |          |
    # |      | 0304;             |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SR;R=3;P0=500;P1=-5000;P2=-2500;P3=-500;P4=-20000;D=01030202030302020304;'
    # ]
# Failed test 'checking set sendMsg ID:17 (P17#0101#R3#C500) without cc1101  devIo closed'
# at (eval 6079) line 500.
    # Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 271, 271 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SR;;R=4;;P0=-8225 | 271      |
    # |      |                   |         | ;;P1=235;;P2=-470 |          |
    # |      |                   |         | ;;P3=-235;;P4=470 |          |
    # |      |                   |         | ;;D=0121212121342 |          |
    # |      |                   |         | 1212121212134;;   |          |
    # |      |                   |         |                   |          |
    # | [0]  | SR;R=4;P0=-8225;P | !exists | <DOES NOT EXIST>  |          |
    # |      | 1=235;P2=-470;P3= |         |                   |          |
    # |      | -235;P4=470;D=012 |         |                   |          |
    # |      | 12121213421212121 |         |                   |          |
    # |      | 212134;           |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SR;R=4;P0=-8225;P1=235;P2=-470;P3=-235;P4=470;D=01212121213421212121212134;'
    # ]
# Failed test 'checking set sendMsg ID:29 (P29#0xF7E#R4) without cc1101  devIo closed'
# at (eval 6079) line 500.
    # Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 281, 281 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SC;;R=3;;SR;;P0=- | 281      |
    # |      |                   |         | 2560;;P1=2560;;P3 |          |
    # |      |                   |         | =-640;;D=10101010 |          |
    # |      |                   |         | 101010113;;SM;;C= |          |
    # |      |                   |         | 895;;D=0101;;F=10 |          |
    # |      |                   |         | AB85550A;;        |          |
    # |      |                   |         |                   |          |
    # | [0]  | SC;R=3;SR;P0=-256 | !exists | <DOES NOT EXIST>  |          |
    # |      | 0;P1=2560;P3=-640 |         |                   |          |
    # |      | ;D=10101010101010 |         |                   |          |
    # |      | 113;SM;C=895;D=01 |         |                   |          |
    # |      | 01;F=10AB85550A;  |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SC;R=3;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=895;D=0101;F=10AB85550A;'
    # ]
# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500#F10AB85550A) with fixed frequency with cc1101  devIo closed'
# at (eval 6079) line 500.
    # Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 291, 291 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SC;;R=3;;SR;;P0=- | 291      |
    # |      |                   |         | 2560;;P1=2560;;P3 |          |
    # |      |                   |         | =-640;;D=10101010 |          |
    # |      |                   |         | 101010113;;SM;;C= |          |
    # |      |                   |         | 895;;D=0101;;     |          |
    # |      |                   |         |                   |          |
    # | [0]  | SC;R=3;SR;P0=-256 | !exists | <DOES NOT EXIST>  |          |
    # |      | 0;P1=2560;P3=-640 |         |                   |          |
    # |      | ;D=10101010101010 |         |                   |          |
    # |      | 113;SM;C=895;D=01 |         |                   |          |
    # |      | 01;               |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SC;R=3;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=895;D=0101;'
    # ]
# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500#F10AB85550A) with fixed frequency without cc1101  devIo closed'
# at (eval 6079) line 500.
    # Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 301, 301 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SC;;R=3;;SR;;P0=- | 301      |
    # |      |                   |         | 2560;;P1=2560;;P3 |          |
    # |      |                   |         | =-640;;D=10101010 |          |
    # |      |                   |         | 101010113;;SM;;C= |          |
    # |      |                   |         | 895;;D=0101;;F=10 |          |
    # |      |                   |         | AB85550A;;        |          |
    # |      |                   |         |                   |          |
    # | [0]  | SC;R=3;SR;P0=-256 | !exists | <DOES NOT EXIST>  |          |
    # |      | 0;P1=2560;P3=-640 |         |                   |          |
    # |      | ;D=10101010101010 |         |                   |          |
    # |      | 113;SM;C=895;D=01 |         |                   |          |
    # |      | 01;F=10AB85550A;  |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SC;R=3;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=895;D=0101;F=10AB85550A;'
    # ]
# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500) with default frequency with cc1101  devIo closed'
# at (eval 6079) line 500.
    # Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 311, 311 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SC;;R=3;;SR;;P0=- | 311      |
    # |      |                   |         | 2560;;P1=2560;;P3 |          |
    # |      |                   |         | =-640;;D=10101010 |          |
    # |      |                   |         | 101010113;;SM;;C= |          |
    # |      |                   |         | 895;;D=0101;;     |          |
    # |      |                   |         |                   |          |
    # | [0]  | SC;R=3;SR;P0=-256 | !exists | <DOES NOT EXIST>  |          |
    # |      | 0;P1=2560;P3=-640 |         |                   |          |
    # |      | ;D=10101010101010 |         |                   |          |
    # |      | 113;SM;C=895;D=01 |         |                   |          |
    # |      | 01;               |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SC;R=3;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=895;D=0101;'
    # ]
# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500) with default frequency without cc1101  devIo closed'
# at (eval 6079) line 500.
    # Failed test 'Verify expected queue element entrys'
    # at (eval 6079) line 496.
    # +------+-------------------+---------+-------------------+----------+
    # | PATH | GOT               | OP      | CHECK             | LNs      |
    # +------+-------------------+---------+-------------------+----------+
    # |      | ARRAY(0x7416a50)  |         | <BAG>             | 320, 320 |
    # |      |                   |         |                   |          |
    # | [*]  | <DOES NOT EXIST>  |         | SR;;R=3;;P0=7000; | 320      |
    # |      |                   |         | ;P1=-2200;;P2=100 |          |
    # |      |                   |         | 0;;P3=-600;;P4=50 |          |
    # |      |                   |         | 0;;P5=-1100;;D=01 |          |
    # |      |                   |         | 45234523;;        |          |
    # |      |                   |         |                   |          |
    # | [0]  | SR;R=3;P0=7000;P1 | !exists | <DOES NOT EXIST>  |          |
    # |      | =-2200;P2=1000;P3 |         |                   |          |
    # |      | =-600;P4=500;P5=- |         |                   |          |
    # |      | 1100;D=0145234523 |         |                   |          |
    # |      | ;                 |         |                   |          |
    # +------+-------------------+---------+-------------------+----------+
    # [
    #   'SR;R=3;P0=7000;P1=-2200;P2=1000;P3=-600;P4=500;P5=-1100;D=0145234523;'
    # ]
# Failed test 'checking set sendMsg ID:72 (P72#0101#R3#C500) without cc1101  devIo closed'
# at (eval 6079) line 500.
sidey79 commented 4 years ago

Das ist mir neu, dass dieser Test abbricht.

Die doppelten ; sind aber seltsam in Check. Würde ich nicht erwarten.

Wo bricht der Test denn ab? Die letzten PRs waren doch sauber

HomeAutoUser commented 4 years ago

Wo bricht der Test denn ab? Die letzten PRs waren doch sauber

Detailausgabe siehe Post https://github.com/RFD-FHEM/RFFHEM/issues/676#issuecomment-605498486

Ich hatte mal einen Commit selbst bei mir ausgeführt weil ich etwas änderte. Da fiel mir das auf. Darauf hin habe ich mein lokales System mal auf die aktuelle DEV geupdatet und nur den Test ausgeführt und sah ebenso das dieser fehl schlägt.

Abbruch:

# Failed test 'checking set sendMsg ID:0 (P0#0101#R3#C500) without cc1101  devIo closed'

# Failed test 'checking set sendMsg ID:17 (P17#0101#R3#C500) without cc1101  devIo closed'

# Failed test 'checking set sendMsg ID:29 (P29#0xF7E#R4) without cc1101  devIo closed'

# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500#F10AB85550A) with fixed frequency with cc1101  devIo closed'

# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500#F10AB85550A) with fixed frequency without cc1101  devIo closed'

# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500) with default frequency with cc1101  devIo closed'

# Failed test 'checking set sendMsg ID:43 (P43#0101#R3#C500) with default frequency without cc1101  devIo closed'

# Failed test 'checking set sendMsg ID:72 (P72#0101#R3#C500) without cc1101  devIo closed'

Werte welche genutzt und abgefragt werden:

{
            testname=>  "set sendMsg ID:0 (P0#0101#R3#C500)",
            input   =>  "sendMsg P0#0101#R3#C500",
            check =>  sub { 
                return bag  {
                    item 'SR;;R=3;;P0=500;;P1=-8000;;P2=-3500;;P3=-1500;;D=0103020302;;';;
                };;
            }
        },
        {
            testname=>  "set sendMsg ID:17 (P17#0101#R3#C500)",
            input   =>  "sendMsg P17#0101#R3#C500",
            check =>  sub { 
                return bag  {
                    item 'SR;;R=3;;P0=500;;P1=-5000;;P2=-2500;;P3=-500;;P4=-20000;;D=01030202030302020304;;';;
                };;
            }
        },
        {
            testname=>  "set sendMsg ID:29 (P29#0xF7E#R4)",
            input   =>  "sendMsg P29#0xF7E#R4",
            check =>  sub { 
                return bag  {
                    item 'SR;;R=4;;P0=-8225;;P1=235;;P2=-470;;P3=-235;;P4=470;;D=01212121213421212121212134;;';;
                };;
            }
        },
        {
            cc1101_available => 1,
            testname=>  "set sendMsg ID:43 (P43#0101#R3#C500#F10AB85550A) with fixed frequency",
            input   =>  "sendMsg P43#0101#R3#C500#F10AB85550A",
            check =>  sub { 
                return bag  {
                    item 'SC;;R=3;;SR;;P0=-2560;;P1=2560;;P3=-640;;D=10101010101010113;;SM;;C=895;;D=0101;;F=10AB85550A;;';;
                };;
            }
        },
        {
            cc1101_available => 0,
            testname=>  "set sendMsg ID:43 (P43#0101#R3#C500#F10AB85550A) with fixed frequency",
            input   =>  "sendMsg P43#0101#R3#C500#F10AB85550A",
            check =>  sub { 
                return bag  {
                    item 'SC;;R=3;;SR;;P0=-2560;;P1=2560;;P3=-640;;D=10101010101010113;;SM;;C=895;;D=0101;;';;
                };;
            }
        },
        {
            cc1101_available => 1,
            testname=>  "set sendMsg ID:43 (P43#0101#R3#C500) with default frequency",
            input   =>  "sendMsg P43#0101#R3#C500",
            check =>  sub { 
                return bag  {
                    item 'SC;;R=3;;SR;;P0=-2560;;P1=2560;;P3=-640;;D=10101010101010113;;SM;;C=895;;D=0101;;F=10AB85550A;;';;
                };;
            }
        },
        {
            cc1101_available => 0,
            testname=>  "set sendMsg ID:43 (P43#0101#R3#C500) with default frequency",
            input   =>  "sendMsg P43#0101#R3#C500",
            check =>  sub { 
                return bag  {
                    item 'SC;;R=3;;SR;;P0=-2560;;P1=2560;;P3=-640;;D=10101010101010113;;SM;;C=895;;D=0101;;';;
                };;
            }
        },
        {
            testname=>  "set sendMsg ID:72 (P72#0101#R3#C500)",
            input   =>  "sendMsg P72#0101#R3#C500",
            check =>  sub { 
                return bag  {
                    item 'SR;;R=3;;P0=7000;;P1=-2200;;P2=1000;;P3=-600;;P4=500;;P5=-1100;;D=0145234523;;';;
                };;
            },
        },
HomeAutoUser commented 4 years ago

@sidey79 ich möchte nochmal auf den Test von dir hinweisen.

Ich habe soeben die aktuelle dev Version mit dem Test test_sub_SIGNALduino_Set-definition.txt laufen lassen und da treten die o.g. Fehler auf. Ich möchte ungern verhindern, das dieser Test erst später in der dev-r35 uns dann ins stolpern bringt ;-)

sidey79 commented 4 years ago

Mit welcher fhem.cfg startest Du Fhem bevor der Test läuft?

HomeAutoUser commented 4 years ago

@sidey79, die lokale fhem.cfg ist glaube nicht der Grund. Auch hier https://github.com/RFD-FHEM/RFFHEM/issues/814 bzw. https://travis-ci.com/github/RFD-FHEM/RFFHEM/jobs/313902716?utm_medium=notification schlägt der Test fehl.

Es ist ein PR welcher dann deine kompletten Tests abläuft und somit die fhem.cfg nutzt online.

sidey79 commented 4 years ago

Hmm, hast Du eine Idee wieso es in #813 dann gestern durchgelaufen ist?

HomeAutoUser commented 4 years ago

@sidey79 ich denke den Fehler zu haben.

Bei deinem Test gestern lief der Test 39 (unten aufgelistet problemlos durch).

Bei dem PR wurde die Setliste erweitert und du scheinst fest auf Werte zu prüfen. Sobald dort ein Setkommando hinzukommt, gibt es eine Differenz. Das zusätzliche Kommando wird im Array mit gezählt aber die "like Abfrage" fehlt dann dazu. Das Problem würde immer auf uns zukommen, wenn die Setlist erweitert werden würde.

not ok 39 - Test SIGNALduino without dummy attrib or value 0 / devio open {
    1..1
    not ok 1 - Test without hardware attribute {
        1..2
        ok 1 - Test Attributes (hardware undef) {
            1..3
            ok 1 - check attrib dummy is 0
            ok 2 - check attrib hardware undef
            ok 3 - check DevIo_IsOpen returns true
        }
        not ok 2 - Test allowed - set commands {
            1..8
            ok 1 - check cmd close accepted
            ok 2 - check cmd disableMessagetype accepted
            ok 3 - check cmd enableMessagetype accepted
            ok 4 - check cmd flash accepted
            ok 5 - check cmd raw accepted
            ok 6 - check cmd reset accepted
            ok 7 - check cmd sendMsg accepted
        }
    }
}

Alles andere verlief mit dem selben Ergebnis durch. Der Test müsste dort ggf. optimiert werden oder vielleicht als "flexibel" gestaltet werden.

like($ret,qr/^Unknown argument \?, choose one .*close.*/,"check cmd close accepted");
like($ret,qr/^Unknown argument \?, choose one .*disableMessagetype.*/,"check cmd disableMessagetype accepted");
like($ret,qr/^Unknown argument \?, choose one .*enableMessagetype.*/,"check cmd enableMessagetype accepted");
like($ret,qr/^Unknown argument \?, choose one .*flash.*/,"check cmd flash accepted");
like($ret,qr/^Unknown argument \?, choose one .*raw.*/,"check cmd raw accepted");
like($ret,qr/^Unknown argument \?, choose one .*reset.*/,"check cmd reset accepted");
like($ret,qr/^Unknown argument \?, choose one .*sendMsg.*/,"check cmd sendMsg accepted");

Hier fehlt nun der Test auf LaCrossePairForSec. Da die Zeilen oben alle gleich sind, kann man diese nicht irgendwie aus dem verfügbaren array als Variable lesen?

my @tests = split(" ", substr($ret,index($ret,"one of")+7));
my $tests = scalar(@tests);
plan($tests);

ODER den Wert fest verankern, dann ginge es natürlich auch.

EDIT: Ich habe den Wert like($ret,qr/^Unknown argument \?, choose one .*LaCrossePairForSec.*/,"check cmd LaCrossePairForSec accepted"); fest ergänzt. Ich denke, du möchtest den Test auf "bestimmte Werte" abfragen. Wir reden hier wenn, vielleicht über eine optimierung des Tests um nicht erneut über die "Falle" zu stolpern.