mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00
java: Added sanity checks and integrated them in CMake. Updated sample names and sample mapping.
Signed-off-by: Stefan Andritoiu <stefan.andritoiu@intel.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
parent
46996e5251
commit
40f9135412
@ -57,6 +57,7 @@ option (BUILDJAVAEXAMPLES "Build java example jars" OFF)
|
|||||||
option (BUILDSWIGJAVA "Build swig java modules" OFF)
|
option (BUILDSWIGJAVA "Build swig java modules" OFF)
|
||||||
option (IPK "Generate IPK using CPack" OFF)
|
option (IPK "Generate IPK using CPack" OFF)
|
||||||
option (RPM "Generate RPM using CPack" OFF)
|
option (RPM "Generate RPM using CPack" OFF)
|
||||||
|
option (BUILDTESTS "Generate check-ups for upm" OFF)
|
||||||
|
|
||||||
# Find swig
|
# Find swig
|
||||||
if (BUILDSWIG)
|
if (BUILDSWIG)
|
||||||
@ -208,3 +209,11 @@ endif()
|
|||||||
if(BUILDJAVAEXAMPLES)
|
if(BUILDJAVAEXAMPLES)
|
||||||
add_subdirectory (examples/java)
|
add_subdirectory (examples/java)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(BUILDTESTS)
|
||||||
|
find_package (PythonInterp REQUIRED)
|
||||||
|
if (${PYTHONINTERP_FOUND})
|
||||||
|
enable_testing ()
|
||||||
|
add_subdirectory (tests)
|
||||||
|
endif ()
|
||||||
|
endif()
|
||||||
|
@ -1,40 +1,21 @@
|
|||||||
# Mapping C++ sample files to Java sample files
|
# Mapping C++ sample files to Java sample files
|
||||||
a110x-intr.cxx A110X_intrSample.java
|
a110x-intr.cxx A110X_intrSample.java
|
||||||
a110x.cxx A110XSample.java
|
a110x.cxx A110XSample.java
|
||||||
ad8232.cxx AD8232Sample.java
|
|
||||||
adc121c021.cxx ADC121C021Sample.java
|
adc121c021.cxx ADC121C021Sample.java
|
||||||
adis16448.cxx ADIS16448Sample.java
|
|
||||||
adxl335.cxx ADXL335Sample.java
|
|
||||||
adxl345.cxx Adxl345Sample.java
|
adxl345.cxx Adxl345Sample.java
|
||||||
ak8975.cxx AK8975Sample.java
|
|
||||||
am2315.cxx AM2315Sample.java
|
|
||||||
apds9002.cxx APDS9002Sample.java
|
|
||||||
biss0001.cxx BISS0001Sample.java
|
biss0001.cxx BISS0001Sample.java
|
||||||
bmpx8x.cxx BMPX8XSample.java
|
bmpx8x.cxx BMPX8XSample.java
|
||||||
buzzer-sound.cxx Buzzer_soundSample.java
|
buzzer-sound.cxx Buzzer_soundSample.java
|
||||||
cjq4435.cxx CJQ4435Sample.java
|
cjq4435.cxx CJQ4435Sample.java
|
||||||
ds1307.cxx DS1307Sample.java
|
ds1307.cxx DS1307Sample.java
|
||||||
eboled.cxx EBOLEDSample.java
|
|
||||||
ecs1030.cxx ECS1030Sample.java
|
|
||||||
enc03r.cxx ENC03RSample.java
|
enc03r.cxx ENC03RSample.java
|
||||||
es08a.cxx ES08ASample.java
|
es08a.cxx ES08ASample.java
|
||||||
flex.cxx FlexSample.java
|
|
||||||
gp2y0a.cxx GP2Y0ASample.java
|
|
||||||
grovebutton.cxx GroveButtonSample.java
|
grovebutton.cxx GroveButtonSample.java
|
||||||
grovecircularled.cxx GroveCircularLEDSample.java
|
|
||||||
grovecollision.cxx GroveCollisionSample.java
|
|
||||||
groveehr.cxx GroveEHRSample.java
|
groveehr.cxx GroveEHRSample.java
|
||||||
groveeldriver.cxx GroveElDriverSample.java
|
|
||||||
groveelectromagnet.cxx GroveElectromagnetSample.java
|
|
||||||
groveemg.cxx GroveEMGSample.java
|
|
||||||
grovegprs.cxx GroveGPRSSample.java
|
|
||||||
grovegsr.cxx GroveGSRSample.java
|
|
||||||
groveled.cxx GroveLEDSample.java
|
groveled.cxx GroveLEDSample.java
|
||||||
grovelinefinder.cxx GroveLineFinderSample.java
|
grovelinefinder.cxx GroveLineFinderSample.java
|
||||||
grovelight.cxx GroveLightSample.java
|
grovelight.cxx GroveLightSample.java
|
||||||
groveloudness.cxx GroveLoudnessSample.java
|
|
||||||
grovemoisture.cxx GroveMoistureSample.java
|
grovemoisture.cxx GroveMoistureSample.java
|
||||||
groveo2.cxx GroveO2Sample.java
|
|
||||||
groverelay.cxx GroveRelaySample.java
|
groverelay.cxx GroveRelaySample.java
|
||||||
groverotary.cxx GroveRotarySample.java
|
groverotary.cxx GroveRotarySample.java
|
||||||
grovescam.cxx GROVESCAMSample.java
|
grovescam.cxx GROVESCAMSample.java
|
||||||
@ -48,75 +29,45 @@ h3lis331dl.cxx H3LIS331DLSample.java
|
|||||||
hcsr04.cxx HCSR04Sample.java
|
hcsr04.cxx HCSR04Sample.java
|
||||||
hm11.cxx HM11Sample.java
|
hm11.cxx HM11Sample.java
|
||||||
hmc5883l.cxx Hmc5883lSample.java
|
hmc5883l.cxx Hmc5883lSample.java
|
||||||
hp20x.cxx HP20XSample.java
|
|
||||||
ht9170.cxx HT9170Sample.java
|
|
||||||
htu21d.cxx HTU21DSample.java
|
htu21d.cxx HTU21DSample.java
|
||||||
hx711.cxx HX711Sample.java
|
|
||||||
hyld9767.cxx HYLD9767Sample.java
|
|
||||||
ina132.cxx INA132Sample.java
|
|
||||||
itg3200.cxx Itg3200Sample.java
|
itg3200.cxx Itg3200Sample.java
|
||||||
jhd1313m1-lcd.cxx Jhd1313m1_lcdSample.java
|
jhd1313m1-lcd.cxx Jhd1313m1_lcdSample.java
|
||||||
joystick12-example.cxx Joystick12_exampleSample.java
|
joystick12.cxx Joystick12Sample.java
|
||||||
l298-stepper.cxx L298_stepperSample.java
|
lcm1602-i2c.cxx Lcm1602_i2cSample.java
|
||||||
l298.cxx L298Sample.java
|
|
||||||
lcm1602-lcd.cxx Lcm1602_lcdSample.java
|
|
||||||
ldt0028.cxx LDT0028Sample.java
|
ldt0028.cxx LDT0028Sample.java
|
||||||
lol-example.cxx LoL_exampleSample.java
|
lol.cxx LoLSample.java
|
||||||
lpd8806.cxx LPD8806Sample.java
|
|
||||||
lsm303.cxx LSM303Sample.java
|
lsm303.cxx LSM303Sample.java
|
||||||
lsm9ds0.cxx LSM9DS0Sample.java
|
|
||||||
m24lr64e.cxx M24LR64ESample.java
|
m24lr64e.cxx M24LR64ESample.java
|
||||||
max31723.cxx MAX31723Sample.java
|
|
||||||
max31855.cxx MAX31855Sample.java
|
|
||||||
max44000.cxx MAX44000Sample.java
|
max44000.cxx MAX44000Sample.java
|
||||||
max5487.cxx MAX5487Sample.java
|
|
||||||
maxds3231m.cxx MAXDS3231MSample.java
|
|
||||||
mg811.cxx MG811Sample.java
|
|
||||||
mic.cxx MicrophoneSample.java
|
mic.cxx MicrophoneSample.java
|
||||||
mlx90614.cxx MLX90614Sample.java
|
|
||||||
mma7455.cxx MMA7455Sample.java
|
mma7455.cxx MMA7455Sample.java
|
||||||
mma7660.cxx MMA7660Sample.java
|
mma7660.cxx MMA7660Sample.java
|
||||||
mpl3115a2.cxx MPL3115A2Sample.java
|
mpl3115a2.cxx MPL3115A2Sample.java
|
||||||
mpr121.cxx MPR121Sample.java
|
mpr121.cxx MPR121Sample.java
|
||||||
mpu60x0.cxx MPU60X0Sample.java
|
|
||||||
mpu9150.cxx MPU9150Sample.java
|
mpu9150.cxx MPU9150Sample.java
|
||||||
mpu9250.cxx MPU9250Sample.java
|
|
||||||
mq2.cxx MQ2Sample.java
|
mq2.cxx MQ2Sample.java
|
||||||
mq3.cxx MQ3Sample.java
|
|
||||||
mq303a.cxx MQ303ASample.java
|
mq303a.cxx MQ303ASample.java
|
||||||
mq5.cxx MQ5Sample.java
|
mq5.cxx MQ5Sample.java
|
||||||
mq9.cxx MQ9Sample.java
|
|
||||||
my9221-ledbar.cxx MY9221_ledbarSample.java
|
my9221-ledbar.cxx MY9221_ledbarSample.java
|
||||||
my9221-updown.cxx MY9221_updownSample.java
|
|
||||||
nrf24l01-broadcast.cxx NRF24L01_broadcastSample.java
|
|
||||||
nrf24l01-receiver.cxx NRF24L01_receiverSample.java
|
nrf24l01-receiver.cxx NRF24L01_receiverSample.java
|
||||||
nrf24l01-transmitter.cxx NRF24L01_transmitterSample.java
|
nrf24l01-transmitter.cxx NRF24L01_transmitterSample.java
|
||||||
nunchuck.cxx NUNCHUCKSample.java
|
nunchuck.cxx NUNCHUCKSample.java
|
||||||
otp538u.cxx OTP538USample.java
|
otp538u.cxx OTP538USample.java
|
||||||
pca9685.cxx PCA9685Sample.java
|
|
||||||
pn532-writeurl.cxx PN532_writeurlSample.java
|
|
||||||
pn532.cxx PN532Sample.java
|
|
||||||
ppd42ns.cxx PPD42NSSample.java
|
ppd42ns.cxx PPD42NSSample.java
|
||||||
pulsensor.cxx PulsensorSample.java
|
pulsensor.cxx PulsensorSample.java
|
||||||
rfr359f.cxx RFR359FSample.java
|
rfr359f.cxx RFR359FSample.java
|
||||||
rgbringcoder.cxx RGBRingCoderSample.java
|
|
||||||
rotaryencoder.cxx RotaryEncoderSample.java
|
rotaryencoder.cxx RotaryEncoderSample.java
|
||||||
rpr220-intr.cxx RPR220_intrSample.java
|
rpr220-intr.cxx RPR220_intrSample.java
|
||||||
rpr220.cxx RPR220Sample.java
|
rpr220.cxx RPR220Sample.java
|
||||||
sainsmartks.cxx SAINSMARTKSSample.java
|
|
||||||
sm130.cxx SM130Sample.java
|
|
||||||
ssd1306-oled.cxx SSD1306_oledSample.java
|
|
||||||
ssd1308-oled.cxx SSD1308_oledSample.java
|
ssd1308-oled.cxx SSD1308_oledSample.java
|
||||||
ssd1327-oled.cxx SSD1327_oledSample.java
|
ssd1327-oled.cxx SSD1327_oledSample.java
|
||||||
st7735.cxx ST7735Sample.java
|
st7735.cxx ST7735Sample.java
|
||||||
stepmotor.cxx StepMotorSample.java
|
stepmotor.cxx StepMotorSample.java
|
||||||
ta12200.cxx TA12200Sample.java
|
|
||||||
tm1637.cxx TM1637Sample.java
|
tm1637.cxx TM1637Sample.java
|
||||||
tp401.cxx TP401Sample.java
|
tp401.cxx TP401Sample.java
|
||||||
tsl2561.cxx TSL2561Sample.java
|
tsl2561.cxx TSL2561Sample.java
|
||||||
ttp223.cxx TTP223Sample.java
|
ttp223.cxx TTP223Sample.java
|
||||||
ublox6.cxx Ublox6Sample.java
|
ublox6.cxx Ublox6Sample.java
|
||||||
uln200xa.cxx ULN200XASample.java
|
uln200xa.cxx ULN200XASample.java
|
||||||
waterlevel.cxx WaterLevelSample.java
|
|
||||||
wt5001.cxx WT5001Sample.java
|
wt5001.cxx WT5001Sample.java
|
||||||
yg1006.cxx YG1006Sample.java
|
yg1006.cxx YG1006Sample.java
|
||||||
|
@ -61,9 +61,9 @@ add_example(HMTRPSample hmtrp)
|
|||||||
add_example(HP20xExample hp20x)
|
add_example(HP20xExample hp20x)
|
||||||
add_example(HTU21DSample htu21d)
|
add_example(HTU21DSample htu21d)
|
||||||
add_example(Itg3200Sample itg3200)
|
add_example(Itg3200Sample itg3200)
|
||||||
add_example(Joystick12_exampleSample joystick12)
|
add_example(Joystick12Sample joystick12)
|
||||||
add_example(LDT0028Sample ldt0028)
|
add_example(LDT0028Sample ldt0028)
|
||||||
add_example(LoL_exampleSample lol)
|
add_example(LoLSample lol)
|
||||||
add_example(LSM303Sample lsm303)
|
add_example(LSM303Sample lsm303)
|
||||||
add_example(M24LR64ESample m24lr64e)
|
add_example(M24LR64ESample m24lr64e)
|
||||||
add_example(MAX44000Sample max44000)
|
add_example(MAX44000Sample max44000)
|
||||||
|
44
examples/java/Joystick12Sample.java
Normal file
44
examples/java/Joystick12Sample.java
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Author: Stefan Andritoiu <stefan.andritoiu@intel.com>
|
||||||
|
* Copyright (c) 2015 Intel Corporation.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
* permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
* the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Joystick12Sample {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
//! [Interesting]
|
||||||
|
// Instantiate a joystick on analog pins A0 and A1
|
||||||
|
upm_joystick12.Joystick12 joystick = new upm_joystick12.Joystick12(0,1);
|
||||||
|
|
||||||
|
// Print the X and Y input values every second
|
||||||
|
while(true){
|
||||||
|
float x = joystick.getXInput();
|
||||||
|
float y = joystick.getYInput();
|
||||||
|
|
||||||
|
System.out.println("Driving X: " + x + " , and Y: " + y );
|
||||||
|
|
||||||
|
Thread.sleep(1000);
|
||||||
|
}
|
||||||
|
//! [Interesting]
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
47
examples/java/LoLSample.java
Normal file
47
examples/java/LoLSample.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Author: Stefan Andritoiu <stefan.andritoiu@intel.com>
|
||||||
|
* Copyright (c) 2015 Intel Corporation.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
* permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
* the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//NOT TESTED!!!
|
||||||
|
public class LoLSample {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
// ! [Interesting]
|
||||||
|
upm_lol.LoL sensor = new upm_lol.LoL();
|
||||||
|
|
||||||
|
int x = 0, y = 0;
|
||||||
|
while (true) {
|
||||||
|
// revert pixel
|
||||||
|
sensor.setPixel(x, y, sensor.getPixel(x, y));
|
||||||
|
|
||||||
|
if (++x == 13) {
|
||||||
|
x = 0;
|
||||||
|
y++;
|
||||||
|
}
|
||||||
|
if (y == 9)
|
||||||
|
y = 0;
|
||||||
|
Thread.sleep(10);
|
||||||
|
}
|
||||||
|
// ! [Interesting]
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +1,14 @@
|
|||||||
|
macro (file_to_list readfile outlist)
|
||||||
|
FILE(READ "${readfile}" contents)
|
||||||
|
STRING(REGEX REPLACE ";" "\\\\;" contents "${contents}")
|
||||||
|
STRING(REGEX REPLACE "\n" ";" contents "${contents}")
|
||||||
|
set("${outlist}" "${contents}" )
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
file_to_list ("javaswig_blacklist" JAVASWIG_BLACKLIST)
|
||||||
|
file_to_list ("pythonswig_blacklist" PYTHONSWIG_BLACKLIST)
|
||||||
|
file_to_list ("nodeswig_blacklist" NODESWIG_BLACKLIST)
|
||||||
|
|
||||||
macro(subdirlist result curdir)
|
macro(subdirlist result curdir)
|
||||||
file(GLOB children RELATIVE ${curdir} ${curdir}/*)
|
file(GLOB children RELATIVE ${curdir} ${curdir}/*)
|
||||||
set(dirlist "")
|
set(dirlist "")
|
||||||
@ -159,9 +170,6 @@ if (SWIG_FOUND)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
endif(BUILDSWIGNODE)
|
endif(BUILDSWIGNODE)
|
||||||
# if(BUILDSWIGJAVA)
|
|
||||||
# add_subdirectory (java)
|
|
||||||
# endif(BUILDSWIGJAVA)
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -181,9 +189,15 @@ macro(upm_module_init)
|
|||||||
)
|
)
|
||||||
upm_create_install_pkgconfig (upm-${libname}.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
upm_create_install_pkgconfig (upm-${libname}.pc ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
if (SWIG_FOUND)
|
if (SWIG_FOUND)
|
||||||
upm_swig_python()
|
if (NOT ";${PYTHONSWIG_BLACKLIST};" MATCHES ";${libname};")
|
||||||
upm_swig_node()
|
upm_swig_python()
|
||||||
upm_swig_java()
|
endif()
|
||||||
|
if (NOT ";${NODESWIG_BLACKLIST};" MATCHES ";${libname};")
|
||||||
|
upm_swig_node()
|
||||||
|
endif()
|
||||||
|
if (NOT ";${JAVASWIG_BLACKLIST};" MATCHES ";${libname};")
|
||||||
|
upm_swig_java()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if (BUILDDOC)
|
if (BUILDDOC)
|
||||||
upm_doxygen()
|
upm_doxygen()
|
||||||
|
1
src/javaswig_blacklist
Normal file
1
src/javaswig_blacklist
Normal file
@ -0,0 +1 @@
|
|||||||
|
nrf8001
|
0
src/nodeswig_blacklist
Normal file
0
src/nodeswig_blacklist
Normal file
0
src/pythonswig_blacklist
Normal file
0
src/pythonswig_blacklist
Normal file
17
tests/CMakeLists.txt
Normal file
17
tests/CMakeLists.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
add_test (NAME check_consistency COMMAND ${PYTHON_EXECUTABLE}
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/check_consistency.py
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
if (BUILDSWIGJAVA)
|
||||||
|
add_test (NAME check_autoloadlibrary COMMAND ${PYTHON_EXECUTABLE}
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/check_autoloadlibrary.py
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
add_test (NAME check_samplenames COMMAND ${PYTHON_EXECUTABLE}
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/check_samplenames.py
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
add_test (NAME check_clean COMMAND ${PYTHON_EXECUTABLE}
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/check_clean.py
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
endif ()
|
44
tests/check_autoloadlibrary.py
Executable file
44
tests/check_autoloadlibrary.py
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import unittest as u
|
||||||
|
import re, fnmatch, os
|
||||||
|
|
||||||
|
rootDir = '../src/'
|
||||||
|
prefix = """
|
||||||
|
%pragma(java) jniclasscode=%{
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
System.loadLibrary(\""""
|
||||||
|
|
||||||
|
sufix = """\");
|
||||||
|
} catch (UnsatisfiedLinkError e) {
|
||||||
|
System.err.println("Native code library failed to load. \\n" + e);
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%}"""
|
||||||
|
|
||||||
|
class AutoLoadLibrary(u.TestCase):
|
||||||
|
|
||||||
|
def test_existing_snippet(self):
|
||||||
|
broken_modules = []
|
||||||
|
|
||||||
|
for subdir, dirs, files in os.walk(rootDir):
|
||||||
|
for fileName in files:
|
||||||
|
if fnmatch.fnmatch(fileName, 'javaupm_*.i'):
|
||||||
|
moduleName = fileName[:-2]
|
||||||
|
snippet = prefix + moduleName + sufix
|
||||||
|
|
||||||
|
with open(os.path.join(subdir, fileName), "r") as f:
|
||||||
|
if not snippet in f.read():
|
||||||
|
broken_modules.append(moduleName)
|
||||||
|
|
||||||
|
self.assertEqual( len(broken_modules), 0,
|
||||||
|
"\nThe following modules do not contain the standard auto load library code:\n" + \
|
||||||
|
"\n".join(broken_modules) + \
|
||||||
|
"\nConsider adding the following snippet to the SWIG interface file:\n" + \
|
||||||
|
prefix + "<module_name>" + sufix)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
u.main()
|
35
tests/check_clean.py
Executable file
35
tests/check_clean.py
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import unittest as u
|
||||||
|
import re, fnmatch, os
|
||||||
|
|
||||||
|
rootDir = '../build/src/'
|
||||||
|
swigtypeStr = 'SWIGTYPE'
|
||||||
|
|
||||||
|
class Clean(u.TestCase):
|
||||||
|
|
||||||
|
def test_existing_swigtype(self):
|
||||||
|
unclean = []
|
||||||
|
|
||||||
|
for dirName in os.listdir(rootDir):
|
||||||
|
dirPath = os.path.join(rootDir, dirName)
|
||||||
|
if not os.path.isdir(dirPath):
|
||||||
|
continue
|
||||||
|
|
||||||
|
ok = True
|
||||||
|
for subdir, dirs, files in os.walk(dirPath):
|
||||||
|
if not ok:
|
||||||
|
break
|
||||||
|
for fileName in files:
|
||||||
|
if swigtypeStr in fileName:
|
||||||
|
unclean.append(dirName)
|
||||||
|
ok = False
|
||||||
|
break
|
||||||
|
|
||||||
|
self.assertEqual( len(unclean), 0,
|
||||||
|
"\nThe following modules have unclean Java bindings:\n" + \
|
||||||
|
"\n".join(unclean) + "\n\n" + \
|
||||||
|
"Consider adding them to the SWIGJAVA blacklist")
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
u.main()
|
60
tests/check_consistency.py
Executable file
60
tests/check_consistency.py
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import unittest as u
|
||||||
|
import re, fnmatch, os
|
||||||
|
|
||||||
|
rootDir = '../src/'
|
||||||
|
javaBlacklistFile = '../src/javaswig_blacklist'
|
||||||
|
pythonBlacklistFile = '../src/pythonswig_blacklist'
|
||||||
|
nodeBlacklistFile = '../src/nodeswig_blacklist'
|
||||||
|
|
||||||
|
|
||||||
|
class BlacklistConsistency(u.TestCase):
|
||||||
|
|
||||||
|
def test_java_blacklist(self):
|
||||||
|
|
||||||
|
with open(javaBlacklistFile) as f:
|
||||||
|
blacklist = [line.rstrip('\n') for line in f]
|
||||||
|
|
||||||
|
for libraryName in blacklist:
|
||||||
|
files = os.listdir( os.path.join(rootDir, libraryName))
|
||||||
|
interfaceFileName = "javaupm_" + libraryName + ".i"
|
||||||
|
|
||||||
|
if interfaceFileName in files:
|
||||||
|
self.fail("\n" + libraryName + " is in javaswig blacklist.\n" + \
|
||||||
|
"Remove it from blacklist or remove " + \
|
||||||
|
interfaceFileName + " from sources.")
|
||||||
|
|
||||||
|
|
||||||
|
def test_python_blacklist(self):
|
||||||
|
|
||||||
|
with open(pythonBlacklistFile) as f:
|
||||||
|
blacklist = [line.rstrip('\n') for line in f]
|
||||||
|
|
||||||
|
for libraryName in blacklist:
|
||||||
|
files = os.listdir( os.path.join(rootDir, libraryName))
|
||||||
|
interfaceFileName = "pyupm_" + libraryName + ".i"
|
||||||
|
|
||||||
|
if interfaceFileName in files:
|
||||||
|
self.fail("\n" + libraryName + " is in pythonswig blacklist.\n" + \
|
||||||
|
"Remove it from blacklist or remove " + \
|
||||||
|
interfaceFileName + " from sources.")
|
||||||
|
|
||||||
|
|
||||||
|
def test_node_blacklist(self):
|
||||||
|
|
||||||
|
with open(nodeBlacklistFile) as f:
|
||||||
|
blacklist = [line.rstrip('\n') for line in f]
|
||||||
|
|
||||||
|
for libraryName in blacklist:
|
||||||
|
files = os.listdir( os.path.join(rootDir, libraryName))
|
||||||
|
interfaceFileName = "jsupm_" + libraryName + ".i"
|
||||||
|
|
||||||
|
if interfaceFileName in files:
|
||||||
|
self.fail("\n" + libraryName + " is in nodeswig blacklist.\n" + \
|
||||||
|
"Remove it from blacklist or remove " + \
|
||||||
|
interfaceFileName + " from sources.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
u.main()
|
53
tests/check_samplenames.py
Executable file
53
tests/check_samplenames.py
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import unittest as u
|
||||||
|
import re, fnmatch, os, sys
|
||||||
|
|
||||||
|
sampleMappingFile = '../doxy/samples.mapping.txt'
|
||||||
|
cSamplesDir = '../examples/c++/'
|
||||||
|
javaSamplesDir = '../examples/java/'
|
||||||
|
|
||||||
|
|
||||||
|
class SampleNames(u.TestCase):
|
||||||
|
|
||||||
|
def test_existing_samples(self):
|
||||||
|
missing_c_files = []
|
||||||
|
missing_java_files = []
|
||||||
|
|
||||||
|
with open (sampleMappingFile, "r") as f:
|
||||||
|
for line in f:
|
||||||
|
sampleNames = line.split();
|
||||||
|
|
||||||
|
cSampleName = sampleNames[0]
|
||||||
|
if not cSampleName.endswith('.cxx'):
|
||||||
|
continue
|
||||||
|
|
||||||
|
javaSampleName = sampleNames[1]
|
||||||
|
if not javaSampleName.endswith('.java'):
|
||||||
|
continue
|
||||||
|
|
||||||
|
ok = False
|
||||||
|
for file in os.listdir(cSamplesDir):
|
||||||
|
if file == cSampleName:
|
||||||
|
ok = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if not ok:
|
||||||
|
missing_c_files.append(cSampleName)
|
||||||
|
|
||||||
|
ok = False
|
||||||
|
for file in os.listdir(javaSamplesDir):
|
||||||
|
if file == javaSampleName:
|
||||||
|
ok = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if not ok:
|
||||||
|
missing_java_files.append(javaSampleName)
|
||||||
|
|
||||||
|
self.assertEqual( len(missing_java_files) + len(missing_c_files), 0,
|
||||||
|
"\nThe following files are missing from samples:\n" + \
|
||||||
|
"\n".join(missing_c_files) + "\n" + "\n".join(missing_java_files))
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
u.main()
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user