Skip to content
Permalink
Browse files

Merge branch 'master' into eurolite-pro-mk2

  • Loading branch information...
peternewman committed Dec 26, 2018
2 parents ddf8a02 + e295b99 commit 905cd119e54e722dcfd023d78b9a6c5d925ce18c
Showing with 1,620 additions and 426 deletions.
  1. +102 −0 .codespellignore
  2. +1 −0 .gitignore
  3. +99 −16 .travis-ci.sh
  4. +28 −2 .travis.yml
  5. +1 −1 Doxyfile
  6. +8 −1 Makefile.am
  7. +24 −3 NEWS
  8. +1 −1 README
  9. +2 −2 README.developer
  10. +7 −1 README.mingw32
  11. +0 −1 common/base/LoggingTest.cpp
  12. +1 −1 common/file/Util.cpp
  13. +2 −2 common/network/MACAddress.cpp
  14. +25 −13 common/network/PosixInterfacePicker.cpp
  15. +2 −2 common/network/Socket.cpp
  16. +64 −13 common/rdm/DiscoveryAgent.cpp
  17. +1 −1 common/rdm/DiscoveryAgentTestHelper.h
  18. +12 −1 common/rdm/PidStoreLoader.cpp
  19. +409 −195 common/rdm/RDMAPI.cpp
  20. +71 −71 common/rdm/RDMAPITest.cpp
  21. +28 −5 common/rdm/ResponderHelper.cpp
  22. +13 −5 common/rdm/UIDTest.cpp
  23. +2 −2 common/thread/SignalThread.cpp
  24. +26 −0 common/web/JsonTest.cpp
  25. +1 −1 common/web/SchemaParser.cpp
  26. +1 −1 config/ola_version.m4
  27. +1 −1 config/resolv.m4
  28. +69 −15 configure.ac
  29. +1 −0 debian/Makefile.mk
  30. +6 −0 debian/changelog
  31. +2 −2 debian/control
  32. +13 −0 debian/tests/control
  33. +13 −0 debian/tests/hw.cc
  34. +3 −0 doxygen/examples/stdin_handler.cpp
  35. +9 −0 doxygen/namespaces.dox
  36. +5 −0 examples/ola-dmxconsole.cpp
  37. +5 −1 examples/ola-dmxmonitor.cpp
  38. +2 −2 include/ola/StringUtils.h
  39. +1 −0 include/ola/base/Version.h.in
  40. +1 −1 include/ola/io/InputBuffer.h
  41. +3 −0 include/ola/rdm/DiscoveryAgent.h
  42. +52 −0 include/ola/rdm/RDMAPI.h
  43. +3 −0 include/ola/rdm/RDMEnums.h
  44. +2 −0 include/ola/rdm/ResponderHelper.h
  45. +40 −5 include/ola/rdm/UID.h
  46. +2 −2 libolaserver.pc.in
  47. +9 −0 libs/usb/LibUsbAdaptor.cpp
  48. +2 −0 man/generate-html.sh
  49. +13 −12 man/olad.1
  50. +1 −1 man/rdm_test_server.py.1
  51. +4 −0 ola/AutoStart.cpp
  52. +9 −7 olad/DiscoveryAgent.cpp
  53. +1 −1 olad/OlaDaemon.cpp
  54. +1 −1 olad/OlaServer.cpp
  55. +5 −4 olad/Olad.cpp
  56. +168 −0 olad/RDMHTTPModule.cpp
  57. +41 −0 olad/RDMHTTPModule.h
  58. +36 −0 olad/plugin_api/UniverseTest.cpp
  59. +1 −1 olad/www/mobile.html
  60. +1 −1 olad/www/ola.html
  61. +1 −1 plugins/convert_README_to_header.sh
  62. +64 −0 plugins/dummy/DummyPortTest.cpp
  63. +58 −0 plugins/generate-html.sh
  64. +1 −0 plugins/pandoc-html-index.html
  65. +1 −4 plugins/pathport/PathportDevice.cpp
  66. +1 −1 plugins/pathport/PathportDevice.h
  67. +1 −1 plugins/sandnet/SandNetDevice.cpp
  68. +2 −2 plugins/sandnet/SandNetDevice.h
  69. +7 −5 plugins/uartdmx/README.md
  70. +1 −1 plugins/usbdmx/VellemanK8062.cpp
  71. +1 −1 plugins/usbpro/DmxTriWidgetTest.cpp
  72. +8 −1 python/ola/OlaClient.py
  73. +2 −0 scripts/verify_trees.py
  74. +3 −1 tools/logic/logic-rdm-sniffer.cpp
  75. +4 −3 tools/rdm/TestDefinitions.py
  76. +4 −3 tools/rdm/rdm_responder_test.py
  77. +3 −2 tools/rdm/rdm_test_server.py
  78. +1 −1 tools/rdm/static/rdmtests.html
  79. +1 −1 tools/usbpro/usbpro-firmware.cpp
@@ -64,3 +64,105 @@ const uint8_t BaseRobeWidget::SOM;
manufacturer_name: "ARRI -- Arnold & Richter Cine Technik GmbH & Co. Betriebs KG"
manufacturer_name: "SRM Technik GmbH"
manufacturer_name: "medien technik cords"
manufacturer_name: "TBE Srl"
STLDeleteValues(&m_uint_map_variables);
return GetMapVar(&m_uint_map_variables, name, label);
STLValues(m_uint_map_variables, &variables);
auto_ptr<JsonUInt> m_uint_value;
m_uint_value.reset(new JsonUInt(4));
m_uint_value->Accept(&wildcard_validator);
m_uint_value->Accept(&validator);
m_uint_value->Accept(&basic_string_validator);
m_uint_value->Accept(&bool_validator);
m_uint_value->Accept(&null_validator);
m_uint_value->Accept(&integer_validator);
auto_ptr<JsonInt> uint_value1(new JsonInt(5));
m_uint_value->Accept(&max_int_validator);
uint_value1->Accept(&max_int_validator);
m_uint_value->Accept(&exclusive_max_int_validator);
uint_value1->Accept(&max_int_validator);
m_uint_value->Accept(&min_int_validator);
m_uint_value->Accept(&exclusive_min_int_validator);
m_uint_value->Accept(&multiple_of_validator);
m_uint_value->Accept(&integer_validator);
m_uint_value->Accept(&object_validator);
m_uint_value->Accept(&array_validator);
m_uint_value->Accept(&all_of_validator);
m_uint_value->Accept(&any_of_validator);
m_uint_value->Accept(&one_of_validator);
m_uint_value->Accept(&not_validator);
JsonInt uint_value1(2);
JsonInt uint_value2(3);
m_uint_value->Accept(&integer_validator);
uint_value1.Accept(&integer_validator);
uint_value2.Accept(&integer_validator);
JsonUInt uint_value(10);
OLA_ASSERT_EQ(expected, JsonWriter::AsString(uint_value));
* Test the uint item
" \"type\": \"uint\",\n"
" \"type\": \"uint\",\n"
" \"type\": \"uint\",\n"
" \"type\": \"uint\",\n"
std::map<std::string, UIntMap*> m_uint_map_variables;
if (message.uint_offset < MAX_UINT_FIELDS) {
message.uint16_fields[message.uint_offset++] = field->Value();
iter->uint_offset != MAX_UINT_FIELDS ||
enum { MAX_UINT_FIELDS = 2 };
uint16_t uint16_fields[MAX_UINT_FIELDS];
uint8_t uint_offset;
status_message() : uint_offset(0), int_offset(0), status_type(0),
std::string Type() const { return "uint"; }
if (items[i]['type'] == 'uint') {
if (items[i]['type'] == 'uint') {
if (type == 'string' || type == 'uint' || type == 'hidden') {
const char RDMHTTPModule::GENERIC_UINT_FIELD[] = "int";
section.AddItem(new HiddenItem("1", GENERIC_UINT_FIELD));
section.AddItem(new HiddenItem("1", GENERIC_UINT_FIELD));
SelectItem *item = new SelectItem("Personality", GENERIC_UINT_FIELD);
string personality_str = request->GetParameter(GENERIC_UINT_FIELD);
UIntItem *uint_item = new UIntItem("DMX Start Address", address,
uint_item->SetMin(DMX_MIN_SLOT_NUMBER);
uint_item->SetMax(DMX_MAX_SLOT_NUMBER);
item = uint_item;
string device_hours = request->GetParameter(GENERIC_UINT_FIELD);
string lamp_hours_str = request->GetParameter(GENERIC_UINT_FIELD);
string lamp_strikes_str = request->GetParameter(GENERIC_UINT_FIELD);
SelectItem *item = new SelectItem("Lamp State", GENERIC_UINT_FIELD);
string lamp_state_str = request->GetParameter(GENERIC_UINT_FIELD);
SelectItem *item = new SelectItem("Lamp Mode", GENERIC_UINT_FIELD);
string lamp_mode_str = request->GetParameter(GENERIC_UINT_FIELD);
string power_cycles_str = request->GetParameter(GENERIC_UINT_FIELD);
UIntItem *item = new UIntItem("Display Level", value, GENERIC_UINT_FIELD);
string display_level_str = request->GetParameter(GENERIC_UINT_FIELD);
section.AddItem(new HiddenItem("1", GENERIC_UINT_FIELD));
SelectItem *item = new SelectItem("Power State", GENERIC_UINT_FIELD);
string power_state_str = request->GetParameter(GENERIC_UINT_FIELD);
SelectItem *item = new SelectItem("Reset Device", GENERIC_UINT_FIELD);
string reset_device_str = request->GetParameter(GENERIC_UINT_FIELD);
section.AddItem(new UIntItem(description, value, GENERIC_UINT_FIELD));
SelectItem *item = new SelectItem("Active Curve", GENERIC_UINT_FIELD);
string curve_str = request->GetParameter(GENERIC_UINT_FIELD);
s.Xa=function(a){a.keyCode==32&&this.cd(a);return!1};wd("goog-checkbox",function(){return new Jg});function Kg(a,b){var c=b.type,d=b.value,h=b.id;if(c=="hidden"){var g=Q("input");g.id=h;g.type="hidden";g.value=d;a.appendChild(g)}else{g=Q("tr");a.appendChild(g);var j=Q("td");j.innerHTML=b.description;g.appendChild(j);j=Q("td");g.appendChild(j);if(h)if(c=="string"||c=="uint"||c=="hidden"){g=Q("input");g.value=d;g.name=h;if(c=="hidden")g.type="hidden";j.appendChild(g);b.button&&(d=new ed.mf(b.button),S(d,j))}else{if(c=="bool")c=new Jg,c.bc(d==1);else{c=new wg;h=d.length;for(g=0;g<h;++g)c.Ba(new Bg(d[g].label));
function Tg(a){for(var b=a.Vd,c=b.length,d=P(a.za.id()),h="",g=0;g<c;++g){var j=b[g].id;if(j)if(b[g].type=="uint"){var l=d.elements[j].value,n=parseInt(l);if(isNaN(n)){a.Dd("Invalid Value",b[g].description+" must be an integer");return}var o=b[g].min;if(o!=k&&n<o){a.Dd("Invalid Value",b[g].description+" must be > "+(o-1));return}o=b[g].max;if(o!=k&&n>o){a.Dd("Invalid Value",b[g].description+" must be < "+(o+1));return}h+=j+"="+l+"&"}else if(b[g].type=="string")l=d.elements[j].value,h+=j+"="+l+"&";
p.M=function(a){Yc(this.bd,a)};p.B=n("$");p.getParent=n("D");p.u=function(a){this.S=a;this.bd.className=a?"goog-tabpane-tab":"goog-tabpane-tab-disabled"};p.isEnabled=n("S");function dk(a,b){if(a.isEnabled())a.$.style.display=b?"":"none",a.bd.className=b?"goog-tabpane-tab-selected":"goog-tabpane-tab"}p.ue=function(a,b){this.D=a;this.jd=ga(b)?b:l};function ck(a,b,c){E.call(this,a,b);this.page=c}w(ck,E);function ek(a,b,c){ti.call(this,a,b,c);this.Xg(!0)}w(ek,ti);ek.prototype.Ec=function(){return this.dispatchEvent("action")};se("goog-option",function(){return new ek(l)});function fk(a,b){var c=b.type,d=b.value,g=b.id;if(c=="hidden"){var h=P("input");h.id=g;h.type="hidden";h.value=d;a.appendChild(h)}else{h=P("tr");a.appendChild(h);var i=P("td");i.innerHTML=b.description;h.appendChild(i);i=P("td");h.appendChild(i);if(g)if(c=="string"||c=="uint"||c=="hidden"){h=P("input");h.value=d;h.name=g;if(c=="hidden")h.type="hidden";i.appendChild(h);b.button&&(new gk(b.button)).L(i)}else{if(c=="bool")c=new dj,c.Kc(d==1);else{c=new $;g=d.length;for(h=0;h<g;++h)c.bb(new ek(d[h].label));
function ok(a,b){for(var c=a.wa[b].data.items,d=c.length,g=N(a.wa[b].id),h="",i=0;i<d;++i){var k=c[i].id;if(k)if(c[i].type=="uint"){var m=g.elements[k].value,q=parseInt(m);if(isNaN(q)){a.Mb("Invalid Value",c[i].description+" must be an integer");return}var t=c[i].min;if(t!=j&&q<t){a.Mb("Invalid Value",c[i].description+" must be > "+(t-1));return}t=c[i].max;if(t!=j&&q>t){a.Mb("Invalid Value",c[i].description+" must be < "+(t+1));return}h+=k+"="+m+"&"}else if(c[i].type=="string")m=g.elements[k].value,
UIntValidator uint_validator(10, 14);
OLA_ASSERT(uint_validator.IsValid("10"));
OLA_ASSERT(uint_validator.IsValid("14"));
OLA_ASSERT_FALSE(uint_validator.IsValid("0"));
OLA_ASSERT_FALSE(uint_validator.IsValid("9"));
OLA_ASSERT_FALSE(uint_validator.IsValid("15"));
// test get/set/has single values uint
// test get/set multiple value uint
// test SetDefaultValue uint
UIntValidator uint_validator(0, 3);
OLA_ASSERT(preferences->SetDefaultValue(key1, uint_validator, value3));
OLA_ASSERT_FALSE(preferences->SetDefaultValue(key1, uint_validator,
const char *uint_vars[] = {
for (unsigned int i = 0; i < arraysize(uint_vars); ++i) {
m_export_map->GetUIntMapVar(uint_vars[i])->Remove(m_universe_id_str);
static const char GENERIC_UINT_FIELD[];
if ((uint) r != buffer.Size()) {
UIntValidator(0, UINT_MAX),
// On win32 TRUE and FALSE are #define'd. We can #undef them here but that
* A #define'd value HAVE_LIBLO which lets us know within the code if the OSC
@@ -15,6 +15,7 @@
*.pb.h
*.pc
*.pyc
*.save
*.swp
*.tar.gz
*.trs
@@ -48,11 +48,15 @@ BLACKLIST

if [[ $TASK = 'lint' ]]; then
# run the lint tool only if it is the requested task
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
./configure --enable-rdm-tests --enable-ja-rule --enable-e133;
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for linting to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
# first check we've not got any generic NOLINTs
# count the number of generic NOLINTs
nolints=$(grep -IR NOLINT * | grep -v "NOLINT(" | wc -l)
@@ -83,22 +87,34 @@ if [[ $TASK = 'lint' ]]; then
fi;
elif [[ $TASK = 'check-licences' ]]; then
# check licences only if it is the requested task
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
travis_fold start "configure"
./configure --enable-rdm-tests --enable-ja-rule --enable-e133;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for licence checking to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
./scripts/enforce_licence.py
if [[ $? -ne 0 ]]; then
exit 1;
fi;
elif [[ $TASK = 'spellintian' ]]; then
# run spellintian only if it is the requested task, ignoring duplicate words
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
travis_fold start "configure"
./configure --enable-rdm-tests --enable-ja-rule --enable-e133;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for spellintian to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
spellingfiles=$(eval "find ./ -type f -and ! \( \
$SPELLINGBLACKLIST \
\) | xargs")
@@ -114,11 +130,17 @@ elif [[ $TASK = 'spellintian' ]]; then
fi;
elif [[ $TASK = 'spellintian-duplicates' ]]; then
# run spellintian only if it is the requested task
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
travis_fold start "configure"
./configure --enable-rdm-tests --enable-ja-rule --enable-e133;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for spellintian to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
spellingfiles=$(eval "find ./ -type f -and ! \( \
$SPELLINGBLACKLIST \
\) | xargs")
@@ -134,32 +156,44 @@ elif [[ $TASK = 'spellintian-duplicates' ]]; then
fi;
elif [[ $TASK = 'codespell' ]]; then
# run codespell only if it is the requested task
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
travis_fold start "configure"
./configure --enable-rdm-tests --enable-ja-rule --enable-e133;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for codespell to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
spellingfiles=$(eval "find ./ -type f -and ! \( \
$SPELLINGBLACKLIST \
\) | xargs")
# count the number of codespell errors
spellingerrors=$(zrun codespell --check-filenames --quiet 2 --regex "[a-zA-Z0-9][\\-'a-zA-Z0-9]+[a-zA-Z0-9]" --exclude-file .codespellignore $spellingfiles 2>&1 | wc -l)
spellingerrors=$(zrun codespell --check-filenames --check-hidden --quiet 2 --regex "[a-zA-Z0-9][\\-'a-zA-Z0-9]+[a-zA-Z0-9]" --exclude-file .codespellignore $spellingfiles 2>&1 | wc -l)
if [[ $spellingerrors -ne 0 ]]; then
# print the output for info
zrun codespell --check-filenames --quiet 2 --regex "[a-zA-Z0-9][\\-'a-zA-Z0-9]+[a-zA-Z0-9]" --exclude-file .codespellignore $spellingfiles
zrun codespell --check-filenames --check-hidden --quiet 2 --regex "[a-zA-Z0-9][\\-'a-zA-Z0-9]+[a-zA-Z0-9]" --exclude-file .codespellignore $spellingfiles
echo "Found $spellingerrors spelling errors via codespell"
exit 1;
else
echo "Found $spellingerrors spelling errors via codespell"
fi;
elif [[ $TASK = 'doxygen' ]]; then
# check doxygen only if it is the requested task
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
# Doxygen is C++ only, so don't bother with RDM tests
travis_fold start "configure"
./configure --enable-ja-rule --enable-e133;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for Doxygen to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
# count the number of warnings
warnings=$(make doxygen-doc 2>&1 >/dev/null | wc -l)
if [[ $warnings -ne 0 ]]; then
@@ -172,11 +206,19 @@ elif [[ $TASK = 'doxygen' ]]; then
fi;
elif [[ $TASK = 'coverage' ]]; then
# Compile with coverage for coveralls
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
# Coverage is C++ only, so don't bother with RDM tests
travis_fold start "configure"
./configure --enable-gcov --enable-ja-rule --enable-e133;
travis_fold end "configure"
travis_fold start "make"
make;
travis_fold end "make"
travis_fold start "make_check"
make check;
travis_fold end "make_check"
elif [[ $TASK = 'coverity' ]]; then
# Run Coverity Scan unless token is zero length
# The Coverity Scan script also relies on a number of other COVERITY_SCAN_
@@ -188,50 +230,91 @@ elif [[ $TASK = 'coverity' ]]; then
fi;
elif [[ $TASK = 'jshint' ]]; then
cd ./javascript/new-src;
travis_fold start "npm_install"
npm install;
travis_fold end "npm_install"
grunt test
elif [[ $TASK = 'flake8' ]]; then
travis_fold start "autoreconf"
autoreconf -i;
./configure --enable-rdm-tests
travis_fold end "autoreconf"
travis_fold start "configure"
./configure --enable-rdm-tests;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for flake8 to run against
make builtfiles
flake8 --max-line-length 80 --exclude *_pb2.py,.git,__pycache --ignore E111,E114,E121,E127,E129 data/rdm include/ola python scripts tools/ola_mon tools/rdm
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
flake8 --max-line-length 80 --exclude *_pb2.py,.git,__pycache --ignore E111,E114,E121,E127,E129,W504 data/rdm include/ola python scripts tools/ola_mon tools/rdm
elif [[ $TASK = 'pychecker' ]]; then
travis_fold start "autoreconf"
autoreconf -i;
./configure --enable-rdm-tests
travis_fold end "autoreconf"
travis_fold start "configure"
./configure --enable-rdm-tests;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for pychecker to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
PYTHONPATH=./python/:$PYTHONPATH
export PYTHONPATH
mkdir ./python/ola/testing/
ln -s ./tools/rdm ./python/ola/testing/rdm
travis_fold start "pychecker_a"
pychecker --quiet --limit 500 --blacklist $PYCHECKER_BLACKLIST $(find ./ -name "*.py" -and \( -wholename "./data/*" -or -wholename "./include/*" -or -wholename "./scripts/*" -or -wholename "./python/examples/rdm_compare.py" -or -wholename "./python/ola/*" \) -and ! \( -name "*_pb2.py" -or -name "OlaClient.py" -or -name "ola_candidate_ports.py" -or -wholename "./scripts/enforce_licence.py" -or -wholename "./python/ola/rpc/*" -or -wholename "./python/ola/ClientWrapper.py" -or -wholename "./python/ola/PidStore.py" -or -wholename "./python/ola/RDMAPI.py" \) | xargs)
travis_fold end "pychecker_a"
# More restricted checking for files that import files that break pychecker
travis_fold start "pychecker_b"
pychecker --quiet --limit 500 --blacklist $PYCHECKER_BLACKLIST --only $(find ./ -name "*.py" -and \( -wholename "./tools/rdm/ModelCollector.py" -or -wholename "./tools/rdm/DMXSender.py" -or -wholename "./tools/rdm/TestCategory.py" -or -wholename "./tools/rdm/TestHelpers.py" -or -wholename "./tools/rdm/TestState.py" -or -wholename "./tools/rdm/TimingStats.py" -or -wholename "./tools/rdm/list_rdm_tests.py" \) | xargs)
travis_fold end "pychecker_b"
# Even more restricted checking for files that import files that break pychecker and have unused parameters
travis_fold start "pychecker_c"
pychecker --quiet --limit 500 --blacklist $PYCHECKER_BLACKLIST --only --no-argsused $(find ./ -name "*.py" -and ! \( -name "*_pb2.py" -or -name "OlaClient.py" -or -name "ola_candidate_ports.py" -or -name "ola_universe_info.py" -or -name "rdm_snapshot.py" -or -name "ClientWrapper.py" -or -name "PidStore.py" -or -name "enforce_licence.py" -or -name "ola_mon.py" -or -name "TestLogger.py" -or -name "TestRunner.py" -or -name "rdm_model_collector.py" -or -name "rdm_responder_test.py" -or -name "rdm_test_server.py" \) | xargs)
travis_fold end "pychecker_c"
elif [[ $TASK = 'pychecker-wip' ]]; then
travis_fold start "autoreconf"
autoreconf -i;
./configure --enable-rdm-tests
travis_fold end "autoreconf"
travis_fold start "configure"
./configure --enable-rdm-tests;
travis_fold end "configure"
# the following is a bit of a hack to build the files normally built during
# the build, so they are present for pychecker to run against
make builtfiles
travis_fold start "make_builtfiles"
make builtfiles;
travis_fold end "make_builtfiles"
PYTHONPATH=./python/:$PYTHONPATH
export PYTHONPATH
mkdir ./python/ola/testing/
ln -s ./tools/rdm ./python/ola/testing/rdm
pychecker --quiet --limit 500 --blacklist $PYCHECKER_BLACKLIST $(find ./ -name "*.py" -and ! \( -name "*_pb2.py" -or -name "OlaClient.py" -or -name "ola_candidate_ports.py" \) | xargs)
else
# Otherwise compile and check as normal
export DISTCHECK_CONFIGURE_FLAGS='--enable-rdm-tests --enable-java-libs --enable-ja-rule --enable-e133'
if [[ "$TRAVIS_OS_NAME" = "linux" ]]; then
# Silence all deprecated declarations on Linux due to auto_ptr making the build log too long
export DISTCHECK_CONFIGURE_FLAGS='--enable-rdm-tests --enable-java-libs --enable-ja-rule --enable-e133 CPPFLAGS=-Wno-deprecated-declarations'
else
export DISTCHECK_CONFIGURE_FLAGS='--enable-rdm-tests --enable-java-libs --enable-ja-rule --enable-e133'
fi
travis_fold start "autoreconf"
autoreconf -i;
travis_fold end "autoreconf"
travis_fold start "configure"
./configure $DISTCHECK_CONFIGURE_FLAGS;
travis_fold end "configure"
travis_fold start "make_distcheck"
make distcheck;
travis_fold end "make_distcheck"
travis_fold start "make_dist"
make dist;
travis_fold end "make_dist"
travis_fold start "verify_trees"
tarball=$(ls -Ut ola*.tar.gz | head -1)
tar -zxf $tarball;
tarball_root=$(echo $tarball | sed 's/.tar.gz$//')
./scripts/verify_trees.py ./ $tarball_root
travis_fold end "verify_trees"
fi

0 comments on commit 905cd11

Please sign in to comment.
You can’t perform that action at this time.