Ticket #13489: 0001-Fix-TestIPTVRecorder-after-change-to-IPTVChannelInfo.patch

File 0001-Fix-TestIPTVRecorder-after-change-to-IPTVChannelInfo.patch, 6.8 KB (added by ijc, 6 years ago)
  • mythtv/libs/libmythtv/channelscan/iptvchannelfetcher.h

    From 8729b343d0fcd4a2fc493714eb477049e041b535 Mon Sep 17 00:00:00 2001
    From: Ian Campbell <ijc@hellion.org.uk>
    Date: Sun, 6 Oct 2019 16:31:26 +0800
    Subject: [PATCH] Fix TestIPTVRecorder after change to IPTVChannelInfo
    
    In a60e7429a09a ("IPTVChannelInfo: explictly set IPTVTuningData protocol to
    invalid") I removed `IPTVChannelInfo::IsValid()` thinking it was unused but
    missed the uses in these test cases. Reintroduce the method, but make it
    `protected` and a friend of the `TestIPTVRecorder` class.
    
    The above change also changed the behaviour of `IPTVChannelInfo`'s constructors
    such that the protocol is not always probed, and therefore `IsValid()` is not
    necessarily true. This is the case when constructed via
    `IPTVChannelFetcher::ParsePlayList`. Update `TestIPTVRecorder::ParseChanInfo` to
    reflect this by now asserting that the tuning data is not valid and that the
    protocol is `inValid` as expected.
    ---
     .../channelscan/iptvchannelfetcher.h          |  7 ++++
     mythtv/libs/libmythtv/iptvtuningdata.h        |  5 +++
     .../test_iptvrecorder/test_iptvrecorder.h     | 40 +++++++++++--------
     3 files changed, 36 insertions(+), 16 deletions(-)
    
    diff --git a/mythtv/libs/libmythtv/channelscan/iptvchannelfetcher.h b/mythtv/libs/libmythtv/channelscan/iptvchannelfetcher.h
    index 3dd1a7894b..2909fe7158 100644
    a b class IPTVChannelInfo  
    4444    {
    4545    }
    4646
     47 protected:
     48    friend class TestIPTVRecorder;
     49    bool IsValid(void) const
     50    {
     51        return !m_name.isEmpty() && m_tuning.IsValid();
     52    }
     53
    4754  public:
    4855    QString        m_name;
    4956    QString        m_xmltvid;
  • mythtv/libs/libmythtv/iptvtuningdata.h

    diff --git a/mythtv/libs/libmythtv/iptvtuningdata.h b/mythtv/libs/libmythtv/iptvtuningdata.h
    index ae5cf3e47d..1cbe15f5e6 100644
    a b class MTV_PUBLIC IPTVTuningData  
    218218            m_protocol = IPTVTuningData::inValid;
    219219    }
    220220
     221  IPTVProtocol GetProtocol(void) const
     222  {
     223      return m_protocol;
     224  }
     225
    221226  protected:
    222227    bool IsHLSPlaylist(void) const
    223228    {
  • mythtv/libs/libmythtv/test/test_iptvrecorder/test_iptvrecorder.h

    diff --git a/mythtv/libs/libmythtv/test/test_iptvrecorder/test_iptvrecorder.h b/mythtv/libs/libmythtv/test/test_iptvrecorder/test_iptvrecorder.h
    index b83ca2e458..7ca968203d 100644
    a b class TestIPTVRecorder: public QObject  
    163163        /* test plain old MPEG-2 TS over multicast playlist */
    164164        chanmap = IPTVChannelFetcher::ParsePlaylist (rawdataUDP, nullptr);
    165165        QCOMPARE (chanmap["001"].m_name, QString ("La 1"));
    166         QVERIFY (chanmap["001"].IsValid ());
    167         QVERIFY (chanmap["001"].m_tuning.IsValid ());
     166        QVERIFY (!chanmap["001"].IsValid ());
     167        QVERIFY (!chanmap["001"].m_tuning.IsValid ());
     168        QCOMPARE (chanmap["001"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    168169        QCOMPARE (chanmap["001"].m_tuning.GetDataURL().toString(), QString ("udp://239.0.0.76:8208"));
    169170
    170171        /* test playlist for Neutrino STBs */
    171172        chanmap = IPTVChannelFetcher::ParsePlaylist (rawdataHTTP, nullptr);
    172         QVERIFY (chanmap["1"].IsValid ());
    173         QVERIFY (chanmap["1"].m_tuning.IsValid ());
     173        QVERIFY (!chanmap["1"].IsValid ());
     174        QVERIFY (!chanmap["1"].m_tuning.IsValid ());
    174175        QCOMPARE (chanmap["1"].m_name, QString ("SVT1 HD Mitt"));
    175176        QCOMPARE (chanmap["1"].m_xmltvid, QString ("svt1hd.svt.se"));
    176177        QCOMPARE (chanmap["1"].m_programNumber, (uint) 1330);
     178        QCOMPARE (chanmap["1"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    177179        QCOMPARE (chanmap["1"].m_tuning.GetDataURL().toString(), QString ("http://192.168.0.234:8001/1:0:19:532:6:22F1:EEEE0000:0:0:0:"));
    178180
    179181        /* test playlist for FreeboxTV, last channel in playlist "wins" */
    180182        chanmap = IPTVChannelFetcher::ParsePlaylist (rawdataRTSP, nullptr);
    181         QVERIFY (chanmap["2"].IsValid ());
    182         QVERIFY (chanmap["2"].m_tuning.IsValid ());
     183        QVERIFY (!chanmap["2"].IsValid ());
     184        QVERIFY (!chanmap["2"].m_tuning.IsValid ());
    183185        QCOMPARE (chanmap["2"].m_name, QString ("France 2 (auto)"));
     186        QCOMPARE (chanmap["2"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    184187        QCOMPARE (chanmap["2"].m_tuning.GetDataURL().toString(), QString ("rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201"));
    185188
    186189        /* test playlist for SAT>IP with "#. name" instead of "# - name" */
    187190        chanmap = IPTVChannelFetcher::ParsePlaylist (rawdataSATIP, nullptr);
    188         QVERIFY (chanmap["10"].IsValid ());
    189         QVERIFY (chanmap["10"].m_tuning.IsValid ());
     191        QVERIFY (!chanmap["10"].IsValid ());
     192        QVERIFY (!chanmap["10"].m_tuning.IsValid ());
     193        QCOMPARE (chanmap["10"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    190194        QCOMPARE (chanmap["10"].m_name, QString ("ZDFinfokanal"));
    191195
    192196        /* test playlist from A1 TV with empty lines and tvg-num */
    193197        chanmap = IPTVChannelFetcher::ParsePlaylist (rawdataA1TV, nullptr);
    194         QVERIFY (chanmap["1"].IsValid ());
    195         QVERIFY (chanmap["1"].m_tuning.IsValid ());
     198        QVERIFY (!chanmap["1"].IsValid ());
     199        QVERIFY (!chanmap["1"].m_tuning.IsValid ());
     200        QCOMPARE (chanmap["1"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    196201        QCOMPARE (chanmap["1"].m_name, QString ("ORFeins"));
    197202
    198203        /* test playlist from Movistar TV with channel number in braces */
    199204        chanmap = IPTVChannelFetcher::ParsePlaylist (rawdataMovistarTV, nullptr);
    200         QVERIFY (chanmap["001"].IsValid ());
    201         QVERIFY (chanmap["001"].m_tuning.IsValid ());
     205        QVERIFY (!chanmap["001"].IsValid ());
     206        QVERIFY (!chanmap["001"].m_tuning.IsValid ());
     207        QCOMPARE (chanmap["001"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    202208        QCOMPARE (chanmap["001"].m_name, QString ("La 1"));
    203         QVERIFY (chanmap["2275"].IsValid ());
    204         QVERIFY (chanmap["2275"].m_tuning.IsValid ());
     209        QVERIFY (!chanmap["2275"].IsValid ());
     210        QVERIFY (!chanmap["2275"].m_tuning.IsValid ());
     211        QCOMPARE (chanmap["2275"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    205212        QCOMPARE (chanmap["2275"].m_name, QString ("Canal Sur Andalucía"));
    206213
    207214        /* test playlist from iptv.ink with channel number in duration */
    208215        chanmap = IPTVChannelFetcher::ParsePlaylist (rawdataIPTVInk, nullptr);
    209         QVERIFY (chanmap["0002"].IsValid ());
    210         QVERIFY (chanmap["0002"].m_tuning.IsValid ());
     216        QVERIFY (!chanmap["0002"].IsValid ());
     217        QVERIFY (!chanmap["0002"].m_tuning.IsValid ());
     218        QCOMPARE (chanmap["0002"].m_tuning.GetProtocol(), IPTVTuningData::inValid);
    211219        QCOMPARE (chanmap["0002"].m_name, QString ("[COLOR gold]Das Erste[/COLOR]"));
    212220    }
    213221