Merge branch 'feat-owned-readonly' 17/29517/1
authorAleksey Volkov <a.volkov@samsung.com>
Wed, 22 May 2019 12:16:52 +0000 (15:16 +0300)
committerAleksey Volkov <a.volkov@samsung.com>
Wed, 22 May 2019 12:17:43 +0000 (15:17 +0300)
Change-Id: I9fe501950cd78571ed690336d146df8bb5aa6e79
Signed-off-by: Aleksey Volkov <a.volkov@samsung.com>
981 files changed:
SConstruct
auto_build.py
build_common/SConscript
cloud/stack/pom.xml
debug.scons [new file with mode: 0644]
doc/added-methods.rst [new file with mode: 0644]
extlibs/gtest/googletest.spec [new file with mode: 0644]
java/SConscript
java/iotivity-android/gradle.properties
java/iotivity-android/src/main/java/org/iotivity/base/OcPlatform.java
java/jni/JniOcPlatform.cpp
java/jni/JniOcPlatform.h
resource/IPCA/unittests/mockInProcServerWrapper.cpp
resource/csdk/connectivity/api/cacommon.h
resource/csdk/connectivity/api/casecurityinterface.h
resource/csdk/connectivity/build/tizen/packaging/com.oic.ca.spec
resource/csdk/connectivity/inc/ca_adapter_net_ssl.h
resource/csdk/connectivity/inc/cacertprofile.h
resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c
resource/csdk/connectivity/src/adapter_util/cacertprofile.c
resource/csdk/connectivity/src/caconnectivitymanager.c
resource/csdk/connectivity/src/caprotocolmessage.c
resource/csdk/connectivity/test/cacertprofiletest.cpp
resource/csdk/connectivity/test/ssladapter_test.cpp
resource/csdk/include/octypes.h
resource/csdk/security/SConscript
resource/csdk/security/include/experimental/securevirtualresourcetypes.h
resource/csdk/security/include/internal/certhelpers.h
resource/csdk/security/include/internal/credresource.h
resource/csdk/security/include/internal/crlresource.h
resource/csdk/security/include/internal/rolesresource.h
resource/csdk/security/include/srmutility.h
resource/csdk/security/provisioning/include/cloud/utils.h
resource/csdk/security/provisioning/sample/SConscript
resource/csdk/security/provisioning/sample/autoprovisioningclient.c
resource/csdk/security/provisioning/sample/config-templates/oic_svr_db_server_mfg.json
resource/csdk/security/provisioning/sample/oic_svr_db_server_mfg.json
resource/csdk/security/provisioning/sample/provisioningclient.c
resource/csdk/security/provisioning/sample/subownerclient.c
resource/csdk/security/provisioning/src/SConscript
resource/csdk/security/provisioning/src/cloud/aclgroup.c
resource/csdk/security/provisioning/src/cloud/aclid.c
resource/csdk/security/provisioning/src/cloud/aclinvite.c
resource/csdk/security/provisioning/src/cloud/auth.c
resource/csdk/security/provisioning/src/cloud/cloudresource.c
resource/csdk/security/provisioning/src/cloud/crl.c
resource/csdk/security/provisioning/src/cloud/csr.c
resource/csdk/security/provisioning/src/cloud/utils.c
resource/csdk/security/provisioning/src/ocprovisioningmanager.c
resource/csdk/security/provisioning/src/ownershiptransfermanager.c
resource/csdk/security/provisioning/src/oxmjustworks.c
resource/csdk/security/provisioning/src/oxmmanufacturercert.c
resource/csdk/security/provisioning/src/oxmrandompin.c
resource/csdk/security/provisioning/src/pmutility.c
resource/csdk/security/provisioning/src/provisioningdatabasemanager.c
resource/csdk/security/provisioning/src/secureresourceprovider.c
resource/csdk/security/provisioning/unittest/ocprovisioningmanager.cpp
resource/csdk/security/src/aclresource.c
resource/csdk/security/src/amaclresource.c
resource/csdk/security/src/certhelpers.c
resource/csdk/security/src/credresource.c
resource/csdk/security/src/crlresource.c
resource/csdk/security/src/csrresource.c
resource/csdk/security/src/deviceonboardingstate.c
resource/csdk/security/src/doxmresource.c
resource/csdk/security/src/occertutility.c
resource/csdk/security/src/ocsecurity.c
resource/csdk/security/src/oxmpincommon.c
resource/csdk/security/src/policyengine.c
resource/csdk/security/src/psinterface.c
resource/csdk/security/src/pstatresource.c
resource/csdk/security/src/rolesresource.c
resource/csdk/security/src/secureresourcemanager.c
resource/csdk/security/src/spresource.c
resource/csdk/security/src/srmutility.c
resource/csdk/security/tool/json2cbor.c
resource/csdk/security/unittest/SConscript
resource/csdk/security/unittest/certhelpers.cpp [new file with mode: 0644]
resource/csdk/security/unittest/ocsecurity.cpp [new file with mode: 0644]
resource/csdk/security/unittest/oxmpincommon.cpp [new file with mode: 0644]
resource/csdk/security/unittest/oxmverifycommon.cpp [new file with mode: 0644]
resource/csdk/security/unittest/spresource.cpp
resource/csdk/stack/SConscript
resource/csdk/stack/include/internal/ocatomicmeasurement.h [new file with mode: 0644]
resource/csdk/stack/include/internal/ocresource.h
resource/csdk/stack/include/internal/ocresourcehandler.h
resource/csdk/stack/include/internal/ocstackinternal.h
resource/csdk/stack/include/ocpayload.h
resource/csdk/stack/include/ocstack.h
resource/csdk/stack/octbstack_product.def
resource/csdk/stack/samples/linux/secure/occlientbasicops.cpp
resource/csdk/stack/samples/tizen/SimpleClientServer/packaging/com.oic.ri.sample.spec
resource/csdk/stack/samples/tizen/build/packaging/com.oic.ri.spec
resource/csdk/stack/src/ocatomicmeasurement.c [new file with mode: 0644]
resource/csdk/stack/src/ocpayload.c
resource/csdk/stack/src/ocpayloadparse.c
resource/csdk/stack/src/ocresource.c
resource/csdk/stack/src/ocserverrequest.c
resource/csdk/stack/src/ocstack.c
resource/csdk/stack/src/oicgroup.c
resource/docs/c-doc/Doxyfile
resource/docs/cpp-doc/Doxyfile
resource/include/IServerWrapper.h
resource/include/InProcServerWrapper.h
resource/include/OCApi.h
resource/include/OCPlatform.h
resource/include/OCPlatform_impl.h
resource/provisioning/SConscript
resource/provisioning/examples/SConscript
resource/src/InProcServerWrapper.cpp
resource/src/OCPlatform.cpp
resource/src/OCPlatform_impl.cpp
resource/unittests/OCResourceResponseTest.cpp
service/coap-http-proxy/SConscript
service/coap-http-proxy/samples/README.md [new file with mode: 0644]
service/coap-http-proxy/samples/SConscript
service/easy-setup/enrollee/inc/ESEnrolleeCommon.h
service/easy-setup/enrollee/src/resourcehandler.c
service/easy-setup/enrollee/src/resourcehandler.h
service/easy-setup/inc/escommon.h
service/easy-setup/sampleapp/enrollee/tizen-sdb/EnrolleeSample/SConscript
service/easy-setup/sampleapp/enrollee/tizen-sdb/EnrolleeSample/packaging/com.oic.es.sample.spec
service/notification/cpp-wrapper/SConscript
service/notification/cpp-wrapper/examples/README.md [new file with mode: 0644]
service/notification/cpp-wrapper/examples/linux/SConscript
test/.project [new file with mode: 0644]
test/IUT_README [new file with mode: 0644]
test/SConstruct [new file with mode: 0644]
test/astyle-cpp-format.sh [new file with mode: 0755]
test/astyle-java-format.sh [new file with mode: 0755]
test/build/SConscript [new file with mode: 0755]
test/build/android/SConscript [new file with mode: 0755]
test/build/android/build.gradle [new file with mode: 0755]
test/build/android/ca/gtest/jni/Android.mk [new file with mode: 0644]
test/build/android/ca/gtest/jni/Application.mk [new file with mode: 0755]
test/build/android/ca/gtest/native_build.sh [new file with mode: 0755]
test/build/android/ca/junit/jni/Android.mk [new file with mode: 0755]
test/build/android/ca/junit/jni/Application.mk [new file with mode: 0755]
test/build/android/ca/junit/native_build.sh [new file with mode: 0755]
test/build/android/iut/jni/Android.mk [new file with mode: 0755]
test/build/android/iut/jni/Application.mk [new file with mode: 0755]
test/build/android/iut/native_build.sh [new file with mode: 0755]
test/build/android/lib_maker.sh [new file with mode: 0755]
test/build/arduino/SConscript [new file with mode: 0644]
test/build/arduino/arduino.scons [new file with mode: 0644]
test/build/arduino/config.scons [new file with mode: 0644]
test/build/configuration.scons [new file with mode: 0644]
test/build/java/SConscript [new file with mode: 0755]
test/build/java/build.gradle [new file with mode: 0755]
test/build/linux/SConscript [new file with mode: 0755]
test/build/linux/SConscriptCA [new file with mode: 0755]
test/build/linux/SConscriptCHP [new file with mode: 0644]
test/build/linux/SConscriptCS [new file with mode: 0644]
test/build/linux/SConscriptCSC [new file with mode: 0644]
test/build/linux/SConscriptCSCPP [new file with mode: 0644]
test/build/linux/SConscriptCloud [new file with mode: 0644]
test/build/linux/SConscriptES [new file with mode: 0644]
test/build/linux/SConscriptIC [new file with mode: 0644]
test/build/linux/SConscriptIUT [new file with mode: 0644]
test/build/linux/SConscriptNS [new file with mode: 0644]
test/build/linux/SConscriptPM [new file with mode: 0644]
test/build/linux/SConscriptRC [new file with mode: 0644]
test/build/linux/SConscriptRD [new file with mode: 0644]
test/build/linux/SConscriptRE [new file with mode: 0644]
test/build/linux/SConscriptRI [new file with mode: 0644]
test/build/linux/SConscriptSK [new file with mode: 0644]
test/build/linux/SConscriptSM [new file with mode: 0644]
test/build/linux/SConscriptTAF [new file with mode: 0755]
test/build/tizen/SConscript [new file with mode: 0755]
test/build/tizen/ca/SConstruct [new file with mode: 0755]
test/build/tizen/common/com.oic.common.test.manifest [new file with mode: 0644]
test/build/tizen/common/com.oic.common.test.spec [new file with mode: 0755]
test/build/tizen/common/com.oic.common.test.xml [new file with mode: 0644]
test/build/tizen/common/gbsbuild.sh [new file with mode: 0644]
test/build/tizen/cs/SConstruct [new file with mode: 0755]
test/build/tizen/es/SConstruct [new file with mode: 0755]
test/build/tizen/ic/SConstruct [new file with mode: 0644]
test/build/tizen/iut/SConstruct [new file with mode: 0755]
test/build/tizen/pm/SConstruct [new file with mode: 0755]
test/build/tizen/rc/SConstruct [new file with mode: 0644]
test/build/tizen/re/SConstruct [new file with mode: 0755]
test/build/tizen/ri/SConstruct [new file with mode: 0755]
test/build/windows/SConscript [new file with mode: 0644]
test/build/windows/SConscriptCA [new file with mode: 0644]
test/build/windows/SConscriptES [new file with mode: 0644]
test/build/windows/SConscriptIUT [new file with mode: 0644]
test/build/windows/SConscriptPM [new file with mode: 0644]
test/build/windows/SConscriptRD [new file with mode: 0644]
test/build/windows/SConscriptRE [new file with mode: 0644]
test/build/windows/SConscriptRI [new file with mode: 0644]
test/build/windows/SConscriptSK [new file with mode: 0644]
test/extlibs/.project [new file with mode: 0755]
test/extlibs/ArduinoUnit/ArduinoUnit.h [new file with mode: 0755]
test/extlibs/ArduinoUnit/examples/advanced/advanced.ino [new file with mode: 0755]
test/extlibs/ArduinoUnit/examples/basic/basic.ino [new file with mode: 0755]
test/extlibs/ArduinoUnit/examples/continuous/continuous.ino [new file with mode: 0755]
test/extlibs/ArduinoUnit/examples/digital_pin_test/digital_pin_test.ino [new file with mode: 0755]
test/extlibs/ArduinoUnit/examples/filter/filter.ino [new file with mode: 0755]
test/extlibs/ArduinoUnit/examples/verbosity/verbosity.ino [new file with mode: 0755]
test/extlibs/ArduinoUnit/keywords.txt [new file with mode: 0755]
test/extlibs/ArduinoUnit/utility/ArduinoUnit.cpp [new file with mode: 0755]
test/extlibs/ArduinoUnit/utility/ArduinoUnit.d [new file with mode: 0644]
test/extlibs/ArduinoUnit/utility/FakeStream.cpp [new file with mode: 0755]
test/extlibs/ArduinoUnit/utility/FakeStream.d [new file with mode: 0644]
test/extlibs/ArduinoUnit/utility/FakeStream.h [new file with mode: 0755]
test/extlibs/ArduinoUnit/utility/FakeStreamBuffer.cpp [new file with mode: 0755]
test/extlibs/ArduinoUnit/utility/FakeStreamBuffer.d [new file with mode: 0644]
test/extlibs/ArduinoUnit/utility/FakeStreamBuffer.h [new file with mode: 0755]
test/extlibs/ArduinoUnit/utility/FreeMemory.cpp [new file with mode: 0755]
test/extlibs/ArduinoUnit/utility/FreeMemory.d [new file with mode: 0644]
test/extlibs/ArduinoUnit/utility/FreeMemory.h [new file with mode: 0755]
test/extlibs/ReadMe.txt [new file with mode: 0644]
test/extlibs/SConstruct [new file with mode: 0755]
test/extlibs/gtest-1.7.0/HowToGbsBuild.txt [new file with mode: 0755]
test/extlibs/gtest-1.7.0/Makefile [new file with mode: 0755]
test/extlibs/gtest-1.7.0/SConscript [new file with mode: 0644]
test/extlibs/gtest-1.7.0/gbsbuild.sh [new file with mode: 0755]
test/extlibs/gtest-1.7.0/packaging/gtest.spec [new file with mode: 0755]
test/extlibs/gtest-1.7.0/src/SConscript [new file with mode: 0755]
test/include/AM/bloodpressure0.h [new file with mode: 0644]
test/include/AM/bloodpressure1.h [new file with mode: 0644]
test/include/AM/bloodpressure2.h [new file with mode: 0644]
test/include/AM/dependencies/MySignals/bloodpressure.h [new file with mode: 0644]
test/include/AM/dependencies/common.h [new file with mode: 0644]
test/include/CloudCommonUtil.h [new file with mode: 0644]
test/include/CommonProperties.h [new file with mode: 0644]
test/include/CommonTestUtil.h [new file with mode: 0644]
test/include/CommonUtil.h [new file with mode: 0644]
test/include/Configuration.h [new file with mode: 0644]
test/include/IotivityTest_Logger.h [new file with mode: 0644]
test/include/MntResource.h [new file with mode: 0644]
test/include/NmonResource.h [new file with mode: 0644]
test/include/ResourceHelper.h [new file with mode: 0644]
test/include/ResourceServer.h [new file with mode: 0644]
test/include/SampleCollection.h [new file with mode: 0644]
test/include/SampleResource.h [new file with mode: 0644]
test/include/SecurityCommonUtil.h [new file with mode: 0644]
test/include/UnsupportiveResource.h [new file with mode: 0644]
test/include/gtest_custom.h [new file with mode: 0644]
test/include/trace.h [new file with mode: 0644]
test/res/ca_resource/config.ini [new file with mode: 0755]
test/res/ca_resource/runner.sh [new file with mode: 0755]
test/res/cloud_resource/cloud_build.sh [new file with mode: 0755]
test/res/cloud_resource/cloud_run.sh [new file with mode: 0755]
test/res/cloud_resource/rootca.crt [new file with mode: 0644]
test/res/common/config.properties [new file with mode: 0644]
test/res/common/tizen_runner.sh [new file with mode: 0755]
test/res/ctt_resource/client_config.txt [new file with mode: 0755]
test/res/ctt_resource/run_taf_agent.sh [new file with mode: 0755]
test/res/ctt_resource/server_config.txt [new file with mode: 0755]
test/res/descriptor/PICS_Client.json [new file with mode: 0755]
test/res/descriptor/PICS_Server.json [new file with mode: 0755]
test/res/descriptor/PICS_Server_OneResource_NoCollection.json [new file with mode: 0755]
test/res/descriptor/airconditioner-swagger.json [new file with mode: 0755]
test/res/pm_resource/cloud.dat [new file with mode: 0644]
test/res/pm_resource/mot_preconfig_pin_server.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_client.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_randompin_with_empty_deviceid.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_server.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_server_justworks.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_server_mfg.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_server_mvjustworks.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_server_randompin.dat [new file with mode: 0644]
test/res/pm_resource/oic_svr_db_subowner_client.dat [new file with mode: 0644]
test/res/pm_resource/preconfig_server_1.dat [new file with mode: 0644]
test/res/pm_resource/preconfig_server_2.dat [new file with mode: 0644]
test/res/pm_resource/rootca.crt [new file with mode: 0644]
test/res/raml/oic.r.light-error.json [new file with mode: 0644]
test/res/raml/oic.r.light.json [new file with mode: 0644]
test/res/raml/oic.r.light.raml [new file with mode: 0644]
test/res/resource_container_xml/ResourceContainerConfig.xml [new file with mode: 0644]
test/res/resource_container_xml/ResourceContainerConfigTestApp.xml [new file with mode: 0755]
test/res/resource_container_xml/ResourceContainerEmptyConfig.xml [new file with mode: 0644]
test/res/tizen_runner.sh [new file with mode: 0755]
test/src/automation/ctt/SConscript [new file with mode: 0755]
test/src/automation/ctt/include/DUTController.h [new file with mode: 0644]
test/src/automation/ctt/include/MiniHttpServer.h [new file with mode: 0644]
test/src/automation/ctt/include/ResourceMap.h [new file with mode: 0644]
test/src/automation/ctt/src/DUTController.c [new file with mode: 0644]
test/src/automation/ctt/src/MiniHttpServer.c [new file with mode: 0644]
test/src/automation/ctt/src/ResourceMap.c [new file with mode: 0644]
test/src/automation/ctt/src/TAFAgent.c [new file with mode: 0644]
test/src/automation/robot/config.txt [new file with mode: 0644]
test/src/automation/robot/device_lib/build.gradle [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/AbstractDeviceController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidADBManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidApplicationManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidCommand.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidDeviceController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidFileManager.java [new file with mode: 0755]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidLogcatManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidNetworkManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/AndroidScreenController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/CommandOutputCapture.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/android/PhysicalButton.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/Coordinate.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/DeviceInformation.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/DeviceStatus.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/JigCommand.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/JigFunction.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/JigMode.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/JigSolution.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/JigStatus.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/KeyEventType.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/RecoveryProcess.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/datamodel/RecoveryType.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IDeviceBridgeManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IDeviceController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IDeviceLogManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IFileManager.java [new file with mode: 0755]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/ILogObservable.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/ILogObserver.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/INetworkController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IProcess.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IProcessManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IProcessObserver.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/interfaces/IScreenController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/linux/LinuxDeviceController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/linux/LinuxFileManager.java [new file with mode: 0755]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/linux/LinuxLogManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/linux/LinuxNetworkController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/linux/LinuxProcess.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/linux/LinuxProcessManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/linux/LinuxProcessObserver.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenApplicationManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenCommand.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenConsoleManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenDLogManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenDeviceController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenFileManager.java [new file with mode: 0755]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenNetworkManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenSDBManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicecontroller/tizen/TizenScreenController.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicetestlib/DeviceControllerPluginManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicetestlib/LogManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicetestlib/MainConfig.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicetestlib/MultiDeviceManager.java [new file with mode: 0755]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/devicetestlib/RecoveryManager.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/util/FileUtil.java [new file with mode: 0755]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/util/IoTivityLogger.java [new file with mode: 0644]
test/src/automation/robot/device_lib/src/org/iotivity/test/rfw/common/util/SystemUtil.java [new file with mode: 0644]
test/src/automation/robot/download_iotivity.sh [new file with mode: 0755]
test/src/automation/robot/helper/DeviceControlKeyword.py [new file with mode: 0644]
test/src/automation/robot/helper/Iotivity_Interop_Test_Helper.txt [new file with mode: 0644]
test/src/automation/robot/helper/Iotivity_Test_Helper.txt [new file with mode: 0644]
test/src/automation/robot/helper/cloud_authenticator/SConstruct [new file with mode: 0644]
test/src/automation/robot/helper/cloud_authenticator/gitHubLogin.c [new file with mode: 0755]
test/src/automation/robot/helper/server_runner.py [new file with mode: 0755]
test/src/automation/robot/helper/variable.py [new file with mode: 0644]
test/src/automation/robot/readme [new file with mode: 0644]
test/src/automation/robot/robot_automation.sh [new file with mode: 0755]
test/src/automation/robot/robot_jython_log.txt [new file with mode: 0644]
test/src/automation/robot/tc/api/Iotivity_ComponentAPI_AndroidTest.txt [new file with mode: 0644]
test/src/automation/robot/tc/api/Iotivity_ComponentAPI_LinuxTest.txt [new file with mode: 0644]
test/src/automation/robot/tc/api/Iotivity_ComponentAPI_TizenTest.txt [new file with mode: 0644]
test/src/automation/robot/tc/bat/Iotivity_ComponentBAT_AndroidTest.txt [new file with mode: 0644]
test/src/automation/robot/tc/bat/Iotivity_ComponentBAT_LinuxTest.txt [new file with mode: 0755]
test/src/automation/robot/tc/bat/Iotivity_ComponentBAT_TizenTest.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_CS_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_ES_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_IC_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_NS_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_PM_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_RC_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_RE_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_RI_Test.txt [new file with mode: 0644]
test/src/automation/robot/tc/interop_app/Iotivity_ComponentInterOp_SM_Test.txt [new file with mode: 0644]
test/src/automation/robot/tizen_build_prep.sh [new file with mode: 0755]
test/src/common/app/c_cpp/SerialKiller.cpp [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/build.gradle [new file with mode: 0755]
test/src/common/app/java/java-android/TCPAndroidClient/ic_launcher-web.png [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/project.properties [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/AndroidManifest.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/java/org/iotivity/tcpandroidclient/MainActivity.java [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/java/org/iotivity/tcpandroidclient/MyCustomAdapter.java [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/java/org/iotivity/tcpandroidclient/TCPClient.java [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/drawable-hdpi/ic_launcher.png [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/drawable-mdpi/ic_launcher.png [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/drawable-xhdpi/ic_launcher.png [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/drawable-xxhdpi/ic_launcher.png [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/layout/activity_main.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/layout/list_item.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/layout/main.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/values-v11/styles.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/values-v14/styles.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/values-w820dp/dimens.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/values/colors.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/values/dimens.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/values/strings.xml [new file with mode: 0644]
test/src/common/app/java/java-android/TCPAndroidClient/src/main/res/values/styles.xml [new file with mode: 0644]
test/src/common/app/java/java-generic/TCPTestServer/build.gradle [new file with mode: 0644]
test/src/common/app/java/java-generic/TCPTestServer/src/org/iotivity/test/tcpserver/SocketMainServer.java [new file with mode: 0644]
test/src/common/commonutil/c_cpp/AM/bloodpressure0.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/AM/bloodpressure1.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/AM/bloodpressure2.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/AM/dependencies/MySignals/bloodpressure.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/AM/dependencies/common.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/CloudCommonUtil.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/CommonTestUtil.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/CommonUtil.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/Configuration.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/MntResource.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/NmonResource.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/ResourceHelper.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/ResourceServer.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/SampleCollection.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/SampleResource.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/SecurityCommonUtil.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/UnsupportiveResource.cpp [new file with mode: 0644]
test/src/common/commonutil/c_cpp/trace.c [new file with mode: 0644]
test/src/common/commonutil/java/common/resource/org/iotivity/common/ResourceConstants.java [new file with mode: 0644]
test/src/common/commonutil/java/common/resource/org/iotivity/common/ResourceHelper.java [new file with mode: 0644]
test/src/common/commonutil/java/common/resource/org/iotivity/resource/ResourceServer.java [new file with mode: 0644]
test/src/common/commonutil/java/common/resource/org/iotivity/resource/SampleResource.java [new file with mode: 0644]
test/src/common/commonutil/java/common/util/org/iotivity/configuration/IConfiguration.java [new file with mode: 0644]
test/src/common/commonutil/java/common/util/org/iotivity/configuration/ReadConfigPropFile.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/broadcast/TestBroadCast.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/cloud/org/iotivity/cloud/GetAuthCode.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/cloud/org/iotivity/cloud/OcAccountManagerHelper.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/cloud/org/iotivity/cloud/RequestTask.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/iotivityhelpers/es/ESHelperCommon.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/iotivityhelpers/ri/RIHelperCommon.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/logger/IoTivityLog.java [new file with mode: 0644]
test/src/common/commonutil/java/java-android/testcase/IoTivityTc.java [new file with mode: 0644]
test/src/common/commonutil/java/java-generic/cloud/org/iotivity/cloud/GetAuthCode.java [new file with mode: 0644]
test/src/common/commonutil/java/java-generic/cloud/org/iotivity/cloud/OcAccountManagerHelper.java [new file with mode: 0644]
test/src/common/commonutil/java/java-generic/iotivityhelpers/ri/RIHelperCommon.java [new file with mode: 0644]
test/src/common/commonutil/java/java-generic/logger/IoTivityLog.java [new file with mode: 0644]
test/src/common/commonutil/java/java-generic/testcase/IoTivityTc.java [new file with mode: 0644]
test/src/common/testcase/gtest/IotivitySECTestMain.cpp [new file with mode: 0644]
test/src/common/testcase/junit/org/iotivity/test/IotivityJunitRunner.java [new file with mode: 0644]
test/src/iBtestapp/common/android/org/iotivity/service/testapp/framework/Base.java [new file with mode: 0644]
test/src/iBtestapp/common/android/org/iotivity/service/testapp/framework/DialogInfo.java [new file with mode: 0644]
test/src/iBtestapp/common/android/org/iotivity/service/testapp/framework/InputReceiver.java [new file with mode: 0644]
test/src/iBtestapp/common/android/org/iotivity/service/testapp/framework/MenuInfo.java [new file with mode: 0644]
test/src/iBtestapp/common/include/IBtestappCommonUtil.h [new file with mode: 0644]
test/src/iBtestapp/common/src/IBtestappCommonUtil.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/cs/android/AndroidManifest.xml [new file with mode: 0644]
test/src/iBtestapp/modules/cs/android/assets/oic_svr_db_client.dat [new file with mode: 0755]
test/src/iBtestapp/modules/cs/android/assets/rootca.crt [new file with mode: 0755]
test/src/iBtestapp/modules/cs/android/build.gradle [new file with mode: 0755]
test/src/iBtestapp/modules/cs/android/settings.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/cs/android/src/org/iotivity/test/cs/app/Action.java [new file with mode: 0644]
test/src/iBtestapp/modules/cs/android/src/org/iotivity/test/cs/app/CSConstants.java [new file with mode: 0644]
test/src/iBtestapp/modules/cs/android/src/org/iotivity/test/cs/app/MainActivity.java [new file with mode: 0644]
test/src/iBtestapp/modules/cs/android/src/org/iotivity/test/cs/app/OcCloudProvisioningHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/cs/c_cpp/csdk/CSTestApp.cpp [new file with mode: 0755]
test/src/iBtestapp/modules/ic/android/AndroidManifest.xml [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/build.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/settings.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/ICAction.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/ICHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/ICMessageAdapter.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/ICMessageQueueHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/ICResourceDirectoryCommonAdapter.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/ICUtility.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/MainActivity.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/OcAccountManagerAdapter.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/OconGetGroupInfoAdapter.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/android/src/org/iotivity/test/ic/app/OconGetGroupInfoAllAdapter.java [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/include/BinarySwitchResourceHelper.h [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/include/CloudHelper.h [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/include/CloudResourceHelper.h [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/res/resource_controller.dat [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/res/resource_server.dat [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/src/BinarySwitchResourceHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/src/CloudHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/src/CloudResourceHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ic/c_cpp/src/CloudTestAppMain.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ns/android/AndroidManifest.xml [new file with mode: 0644]
test/src/iBtestapp/modules/ns/android/build.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/ns/android/settings.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/ns/android/src/org/iotivity/test/ns/app/testapp/MainActivity.java [new file with mode: 0644]
test/src/iBtestapp/modules/ns/android/src/org/iotivity/test/ns/app/testapp/NSAppAction.java [new file with mode: 0644]
test/src/iBtestapp/modules/ns/android/src/org/iotivity/test/ns/app/testapp/NSAppHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/ns/android/src/org/iotivity/test/ns/app/testapp/NSAppUtility.java [new file with mode: 0644]
test/src/iBtestapp/modules/ns/c_cpp/cpp/include/NSCppAppUtility.h [new file with mode: 0644]
test/src/iBtestapp/modules/ns/c_cpp/cpp/src/NSConsumerCppApp.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ns/c_cpp/cpp/src/NSProviderCppApp.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ns/c_cpp/csdk/include/NSUtility.h [new file with mode: 0644]
test/src/iBtestapp/modules/ns/c_cpp/csdk/src/NSConsumerApp.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ns/c_cpp/csdk/src/NSProviderApp.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/AndroidManifest.xml [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/assets/oic_svr_db_client.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/assets/oic_svr_db_client_directpairing.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/assets/oic_svr_db_server.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/assets/oic_svr_db_server_justworks.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/assets/oic_svr_db_server_randompin.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/assets/rootca.crt [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/build.gradle [new file with mode: 0755]
test/src/iBtestapp/modules/pm/android/settings.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/src/org/iotivity/test/pm/app/MainActivity.java [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/src/org/iotivity/test/pm/app/OCPlatformHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/src/org/iotivity/test/pm/app/OcDirectPairDeviceHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/src/org/iotivity/test/pm/app/PMAction.java [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/src/org/iotivity/test/pm/app/PMConstants.java [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/src/org/iotivity/test/pm/app/PMHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/pm/android/src/org/iotivity/test/pm/app/PMLight.java [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/include/PMCppAppHelper.h [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/res/direct_pairing_cpp.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/res/oic_svr_db_server.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/res/oic_svr_db_server_justworks.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/res/oic_svr_db_server_randompin.json [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/src/PMCppAppHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/src/PMCppAppMotHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/src/PMServers.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/cpp/src/PMTestApp.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/include/PMCsdkAppHelper.h [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/include/PMCsdkAppMotHelper.h [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/include/PMCsdkAppUtilityHelper.h [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/res/direct_pairing_c.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/res/oic_svr_db_server.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/res/oic_svr_db_server_justworks.dat [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/res/oic_svr_db_server_randompin.json [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/src/PMCsdkAppHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/src/PMCsdkAppMotHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/src/PMCsdkAppUtilityHelper.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/src/PMServers.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/pm/c_cpp/csdk/src/PMTestApp.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/AndroidManifest.xml [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/assets/lib/ResourceContainerConfig.xml [new file with mode: 0755]
test/src/iBtestapp/modules/rc/android/build.gradle [new file with mode: 0755]
test/src/iBtestapp/modules/rc/android/settings.gradle [new file with mode: 0755]
test/src/iBtestapp/modules/rc/android/src/org/iotivity/service/rc/Action.java [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/src/org/iotivity/service/rc/MainActivity.java [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/src/org/iotivity/service/rc/RCClient.java [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/src/org/iotivity/service/rc/RCClientFindResourceAdapter.java [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/src/org/iotivity/service/rc/RCServer.java [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/src/org/iotivity/service/rc/RCTestAppStaticUtil.java [new file with mode: 0644]
test/src/iBtestapp/modules/rc/android/src/org/iotivity/service/rc/RCTestAppUtilityFunctions.java [new file with mode: 0644]
test/src/iBtestapp/modules/rc/c_cpp/include/RCClient.h [new file with mode: 0644]
test/src/iBtestapp/modules/rc/c_cpp/include/RCFoundResourcesListener.h [new file with mode: 0644]
test/src/iBtestapp/modules/rc/c_cpp/include/RCServer.h [new file with mode: 0644]
test/src/iBtestapp/modules/rc/c_cpp/src/RCClient.cpp [new file with mode: 0755]
test/src/iBtestapp/modules/rc/c_cpp/src/RCFoundResourcesListener.cpp [new file with mode: 0755]
test/src/iBtestapp/modules/rc/c_cpp/src/RCServer.cpp [new file with mode: 0755]
test/src/iBtestapp/modules/rc/c_cpp/src/RCTestAPP.cpp [new file with mode: 0755]
test/src/iBtestapp/modules/re/android/AndroidManifest.xml [new file with mode: 0644]
test/src/iBtestapp/modules/re/android/build.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/re/android/settings.gradle [new file with mode: 0755]
test/src/iBtestapp/modules/re/android/src/org/iotivity/test/re/app/MainActivity.java [new file with mode: 0644]
test/src/iBtestapp/modules/re/android/src/org/iotivity/test/re/app/REAppHelper.java [new file with mode: 0644]
test/src/iBtestapp/modules/re/android/src/org/iotivity/test/re/app/RETestAppAction.java [new file with mode: 0644]
test/src/iBtestapp/modules/re/android/src/org/iotivity/test/re/app/REUtility.java [new file with mode: 0644]
test/src/iBtestapp/modules/re/c_cpp/include/REUtility.h [new file with mode: 0644]
test/src/iBtestapp/modules/re/c_cpp/src/RETestApp.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/ri/android/AndroidManifest.xml [new file with mode: 0644]
test/src/iBtestapp/modules/ri/android/build.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/ri/android/settings.gradle [new file with mode: 0644]
test/src/iBtestapp/modules/ri/android/src/org/iotivity/test/ri/app/InputReceiver.java [new file with mode: 0644]
test/src/iBtestapp/modules/ri/android/src/org/iotivity/test/ri/app/MainActivity.java [new file with mode: 0644]
test/src/iBtestapp/modules/ri/android/src/org/iotivity/test/ri/app/RITestAppAction.java [new file with mode: 0644]
test/src/iBtestapp/modules/ri/c_cpp/InterOpAppRI.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/sm/c_cpp/include/SMLocalOperations.h [new file with mode: 0644]
test/src/iBtestapp/modules/sm/c_cpp/include/SMRemoteOperations.h [new file with mode: 0644]
test/src/iBtestapp/modules/sm/c_cpp/src/SMLocalOperations.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/sm/c_cpp/src/SMRemoteOperations.cpp [new file with mode: 0644]
test/src/iBtestapp/modules/sm/c_cpp/src/SMTestApp.cpp [new file with mode: 0644]
test/src/tc/ca/arduinounit/include/CAHelper.h [new file with mode: 0755]
test/src/tc/ca/arduinounit/src/btc/CATest.cpp [new file with mode: 0755]
test/src/tc/ca/arduinounit/src/helper/CAHelper.cpp [new file with mode: 0755]
test/src/tc/ca/arduinounit/src/stc/CAClientTest.cpp [new file with mode: 0644]
test/src/tc/ca/arduinounit/src/stc/CACommonTest.cpp [new file with mode: 0755]
test/src/tc/ca/arduinounit/src/stc/CAMulticastTest.cpp [new file with mode: 0644]
test/src/tc/ca/gtest/include/CAHelper.h [new file with mode: 0755]
test/src/tc/ca/gtest/src/btc/CANetworkTest.cpp [new file with mode: 0755]
test/src/tc/ca/gtest/src/btc/CATest.cpp [new file with mode: 0755]
test/src/tc/ca/gtest/src/helper/CAAndroidGtestRunner.cpp [new file with mode: 0755]
test/src/tc/ca/gtest/src/helper/CAHelper.cpp [new file with mode: 0755]
test/src/tc/ca/gtest/src/stc/CAClientTest.cpp [new file with mode: 0755]
test/src/tc/ca/gtest/src/stc/CACommonTest.cpp [new file with mode: 0644]
test/src/tc/ca/gtest/src/stc/CAMulticastTest.cpp [new file with mode: 0755]
test/src/tc/ca/gtest/src/stc/CANetworkCommonTest.cpp [new file with mode: 0755]
test/src/tc/ca/junit/AndroidManifest.xml [new file with mode: 0755]
test/src/tc/ca/junit/build.gradle [new file with mode: 0755]
test/src/tc/ca/junit/jni/CAJni.c [new file with mode: 0755]
test/src/tc/ca/junit/jni/org_iotivity_CAJni.h [new file with mode: 0755]
test/src/tc/ca/junit/settings.gradle [new file with mode: 0755]
test/src/tc/ca/junit/src/org/iotivity/CAJni.java [new file with mode: 0755]
test/src/tc/ca/junit/src/org/iotivity/test/ca/tc/btc/CAJavaAPINetworkTest.java [new file with mode: 0755]
test/src/tc/ca/junit/src/org/iotivity/test/ca/tc/btc/CANetworkTest.java [new file with mode: 0755]
test/src/tc/ca/junit/src/org/iotivity/test/ca/tc/helper/MainActivity.java [new file with mode: 0755]
test/src/tc/ca/junit/src/org/iotivity/test/ca/tc/helper/TestInfo.java [new file with mode: 0755]
test/src/tc/ca/junit/src/org/iotivity/test/ca/tc/stc/CAClientTest.java [new file with mode: 0644]
test/src/tc/ca/junit/src/org/iotivity/test/ca/tc/stc/CAMulticastTest.java [new file with mode: 0755]
test/src/tc/ca/junit/src/org/iotivity/test/ca/tc/stc/CANetworkCommonTest.java [new file with mode: 0755]
test/src/tc/chp/gtest/include/CHPHelper.h [new file with mode: 0644]
test/src/tc/chp/gtest/src/btc/CHPServerTest.cpp [new file with mode: 0644]
test/src/tc/chp/gtest/src/helper/CHPHelper.cpp [new file with mode: 0644]
test/src/tc/chp/gtest/src/stc/CHPServerTest.cpp [new file with mode: 0644]
test/src/tc/cs/gtest/cpp/include/CSCppCloudHelper.h [new file with mode: 0755]
test/src/tc/cs/gtest/cpp/include/CSCppUtilityHelper.h [new file with mode: 0755]
test/src/tc/cs/gtest/cpp/src/btc/CSCppCloudTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/cpp/src/helper/CSCppCloudHelper.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/cpp/src/helper/CSCppUtilityHelper.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/cpp/src/stc/CSCppCloudTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/include/CSCsdkCloudClientHelper.h [new file with mode: 0644]
test/src/tc/cs/gtest/csdk/include/CSCsdkCloudHelper.h [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/include/CSCsdkUtilityHelper.h [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/btc/CSCsdkAclDeleteTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/btc/CSCsdkAclTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/btc/CSCsdkCloudTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/btc/CSCsdkGetInvitationTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/btc/CSCsdkGroupTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/btc/CSCsdkPolicyCheckTest.cpp [new file with mode: 0644]
test/src/tc/cs/gtest/csdk/src/helper/CSCsdkCloudClientHelper.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/helper/CSCsdkCloudHelper.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/helper/CSCsdkUtilityHelper.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/stc/CSCsdkAclDeleteTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/stc/CSCsdkAclTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/stc/CSCsdkCloudTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/stc/CSCsdkGetInvitationTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/stc/CSCsdkGroupTest.cpp [new file with mode: 0755]
test/src/tc/cs/gtest/csdk/src/stc/CSCsdkPolicyCheckTest.cpp [new file with mode: 0644]
test/src/tc/cs/junit/AndroidManifest.xml [new file with mode: 0644]
test/src/tc/cs/junit/build.gradle [new file with mode: 0755]
test/src/tc/cs/junit/settings.gradle [new file with mode: 0644]
test/src/tc/cs/junit/src/org/iotivity/test/cs/tc/btc/CSOcCloudProvisioningTest.java [new file with mode: 0644]
test/src/tc/cs/junit/src/org/iotivity/test/cs/tc/helper/CSConstants.java [new file with mode: 0644]
test/src/tc/cs/junit/src/org/iotivity/test/cs/tc/helper/OcCloudProvisioningHelper.java [new file with mode: 0644]
test/src/tc/cs/junit/src/org/iotivity/test/cs/tc/stc/CSProvisioningTest.java [new file with mode: 0644]
test/src/tc/es/gtest/include/ESHelper.h [new file with mode: 0644]
test/src/tc/es/gtest/include/enrollee/ESEnrolleeHelper.h [new file with mode: 0644]
test/src/tc/es/gtest/include/mediator/ESMediatorHelper.h [new file with mode: 0644]
test/src/tc/es/gtest/src/btc/enrollee/ESEnrolleeTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/btc/mediator/ESCloudResourceTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/btc/mediator/ESEasySetupTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/btc/mediator/ESEnrolleeResourceTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/btc/mediator/ESEnrolleeSecurityTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/btc/mediator/ESRemoteEnrolleeTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/btc/mediator/ESRichCommonTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/helper/enrollee/ESEnrolleeHelper.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/helper/mediator/ESMediatorHelper.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/stc/enrollee/ESEnrolleeTest.cpp [new file with mode: 0644]
test/src/tc/es/gtest/src/stc/mediator/ESMediatorTest.cpp [new file with mode: 0644]
test/src/tc/es/junit/AndroidManifest.xml [new file with mode: 0755]
test/src/tc/es/junit/assets/oic_svr_db_client.dat [new file with mode: 0644]
test/src/tc/es/junit/assets/oic_svr_db_client.json [new file with mode: 0644]
test/src/tc/es/junit/build.gradle [new file with mode: 0755]
test/src/tc/es/junit/project.properties [new file with mode: 0644]
test/src/tc/es/junit/settings.gradle [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/btc/ESCloudPropTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/btc/ESDevicePropTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/btc/ESEasySetupTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/btc/ESEnrolleeConfTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/btc/ESRemoteEnrolleeTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/btc/ESStatusTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESCloudPropProvCallback.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESDevicePropProvCallback.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESEnrolleeConfHelper.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESEnrolleeHelper.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESGetConfigurationCallback.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESOICStackHelper.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESPropertiesHelper.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESSecurityProvisioningCallback.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/helper/ESUtility.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/stc/ESProvisionCloudPropertiesTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/stc/ESProvisionDevicePropertiesTest.java [new file with mode: 0644]
test/src/tc/es/junit/src/org/iotivity/test/es/tc/stc/ESProvisionSecurityTest.java [new file with mode: 0644]
test/src/tc/ic/gtest/include/ICAirconditionerResource.h [new file with mode: 0644]
test/src/tc/ic/gtest/include/ICBinarySwitchResource.h [new file with mode: 0644]
test/src/tc/ic/gtest/include/ICHelper.h [new file with mode: 0755]
test/src/tc/ic/gtest/include/ICResource.h [new file with mode: 0644]
test/src/tc/ic/gtest/include/ICResourceHelper.h [new file with mode: 0644]
test/src/tc/ic/gtest/include/ICTemperatureResource.h [new file with mode: 0644]
test/src/tc/ic/gtest/src/btc/ICCloudConnectorTest.cpp [new file with mode: 0755]
test/src/tc/ic/gtest/src/btc/ICMessageQueueTest.cpp [new file with mode: 0755]
test/src/tc/ic/gtest/src/btc/ICRDClient.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/btc/ICResourceDirectoryTest.cpp [new file with mode: 0755]
test/src/tc/ic/gtest/src/helper/ICAirconditionerResource.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/helper/ICBinarySwitchResource.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/helper/ICHelper.cpp [new file with mode: 0755]
test/src/tc/ic/gtest/src/helper/ICResource.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/helper/ICResourceHelper.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/helper/ICTemperatureResource.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/stc/ICOCAccountManagerTest.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/stc/ICOCPlatformTest.cpp [new file with mode: 0644]
test/src/tc/ic/gtest/src/stc/ICOCResourceTest.cpp [new file with mode: 0755]
test/src/tc/ic/gtest/src/stc/ICRDClientTest.cpp [new file with mode: 0755]
test/src/tc/ic/junit/AndroidManifest.xml [new file with mode: 0644]
test/src/tc/ic/junit/build.gradle [new file with mode: 0644]
test/src/tc/ic/junit/project.properties [new file with mode: 0644]
test/src/tc/ic/junit/settings.gradle [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/btc/ICMessageQueueTest.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/btc/ICOcAccountManagerTest.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/btc/ICResourceDirectoryTest.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/helper/ICHelper.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/helper/ICHelperStaticUtil.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/helper/ICMessageAdapter.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/helper/ICMessageQueue.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/helper/ICResourceDirectoryCommonAdapter.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/helper/OcAccountManagerAdapter.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/helper/OconGetGroupInfoAllAdapter.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/stc/ICAccountMangerTest.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/stc/ICMessageQueueTest.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/stc/ICPlateformTest.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/stc/ICPlatformTest.java [new file with mode: 0644]
test/src/tc/ic/junit/src/org/iotivity/test/ic/tc/stc/ICResourceDirectoryTest.java [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/include/NSCppHelper.h [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/include/NSCppUtility.h [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/btc/NSConsumerCppTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/btc/NSMediaContentsProviderCppTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/btc/NSMessageProviderCppTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/btc/NSProviderCppTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/btc/NSSyncInfoProviderCppTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/btc/NSTopicProviderCppTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/btc/NSTopicsListProviderCppTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/helper/NSCppHelper.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/helper/NSCppUtility.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/cpp/src/stc/NSCppScenarioTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/include/NSCommonHelper.h [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/include/NSConsumerHelper.h [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/include/NSProviderHelper.h [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/src/btc/NSConsumerTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/src/btc/NSProviderTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/src/helper/NSCommonHelper.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/src/helper/NSConsumerHelper.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/src/helper/NSProviderHelper.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/src/stc/NSIntegrationConsumerTest.cpp [new file with mode: 0644]
test/src/tc/ns/gtest/csdk/src/stc/NSIntegrationProviderTest.cpp [new file with mode: 0644]
test/src/tc/ns/junit/AndroidManifest.xml [new file with mode: 0644]
test/src/tc/ns/junit/build.gradle [new file with mode: 0755]
test/src/tc/ns/junit/settings.gradle [new file with mode: 0755]
test/src/tc/ns/junit/src/org/iotivity/test/ns/tc/btc/NSConsumerTest.java [new file with mode: 0644]
test/src/tc/ns/junit/src/org/iotivity/test/ns/tc/btc/NSProviderTest.java [new file with mode: 0644]
test/src/tc/ns/junit/src/org/iotivity/test/ns/tc/btc/NSUtilityTest.java [new file with mode: 0644]
test/src/tc/ns/junit/src/org/iotivity/test/ns/tc/helper/NSHelper.java [new file with mode: 0644]
test/src/tc/ns/junit/src/org/iotivity/test/ns/tc/helper/NSTestUtilily.java [new file with mode: 0644]
test/src/tc/ns/junit/src/org/iotivity/test/ns/tc/stc/NSScenarioTest.java [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/include/PMCppCallbackHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/include/PMCppCertHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/include/PMCppHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/include/PMCppMotHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/include/PMCppUtilityHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/btc/PMCppCertTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/btc/PMCppCredTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/btc/PMCppMotTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/btc/PMCppOtmTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/btc/PMCppPairwiseTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/btc/PMCppProvTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/helper/PMCppCallbackHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/helper/PMCppCertHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/helper/PMCppHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/helper/PMCppMotHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/helper/PMCppUtilityHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/stc/PMCppCertTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/cpp/src/stc/PMCppTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/include/PMCsdkAutoProvisionHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/include/PMCsdkCallbackHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/include/PMCsdkCertHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/include/PMCsdkHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/include/PMCsdkMotHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/include/PMCsdkUtilityHelper.h [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/btc/PMCsdkAutoProvisionTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/btc/PMCsdkCertTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/btc/PMCsdkCredTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/btc/PMCsdkMotTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/btc/PMCsdkOtmTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/btc/PMCsdkPairwiseTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/btc/PMCsdkProvTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/helper/PMCsdkAutoProvisionHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/helper/PMCsdkCallbackHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/helper/PMCsdkCertHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/helper/PMCsdkHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/helper/PMCsdkMotHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/helper/PMCsdkUtilityHelper.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/stc/PMCsdkCertTest.cpp [new file with mode: 0644]
test/src/tc/pm/gtest/csdk/src/stc/PMCsdkTest.cpp [new file with mode: 0644]
test/src/tc/pm/junit/AndroidManifest.xml [new file with mode: 0755]
test/src/tc/pm/junit/assets/oic_svr_db_client.dat [new file with mode: 0644]
test/src/tc/pm/junit/assets/oic_svr_db_client_directpairing.dat [new file with mode: 0644]
test/src/tc/pm/junit/assets/oic_svr_db_server.dat [new file with mode: 0644]
test/src/tc/pm/junit/assets/oic_svr_db_server_justworks.dat [new file with mode: 0644]
test/src/tc/pm/junit/assets/oic_svr_db_server_randompin.dat [new file with mode: 0644]
test/src/tc/pm/junit/build.gradle [new file with mode: 0755]
test/src/tc/pm/junit/settings.gradle [new file with mode: 0644]
test/src/tc/pm/junit/src/org/iotivity/test/pm/tc/btc/PMMotTest.java [new file with mode: 0644]
test/src/tc/pm/junit/src/org/iotivity/test/pm/tc/btc/PMOcProvisioningTest.java [new file with mode: 0644]
test/src/tc/pm/junit/src/org/iotivity/test/pm/tc/btc/PMOcSecureResourceTest.java [new file with mode: 0644]
test/src/tc/pm/junit/src/org/iotivity/test/pm/tc/helper/PMConstants.java [new file with mode: 0644]
test/src/tc/pm/junit/src/org/iotivity/test/pm/tc/helper/PMHelper.java [new file with mode: 0644]
test/src/tc/pm/junit/src/org/iotivity/test/pm/tc/stc/PMProvisioningTest.java [new file with mode: 0644]
test/src/tc/rc/gtest/include/RCHelper.h [new file with mode: 0755]
test/src/tc/rc/gtest/src/btc/RCResourceContainerTest.cpp [new file with mode: 0644]
test/src/tc/rc/gtest/src/helper/RCHelper.cpp [new file with mode: 0755]
test/src/tc/rc/gtest/src/stc/RCResourceBundleTest.cpp [new file with mode: 0644]
test/src/tc/rc/gtest/src/stc/RCResourceContainerTest.cpp [new file with mode: 0644]
test/src/tc/rc/junit/AndroidManifest.xml [new file with mode: 0644]
test/src/tc/rc/junit/assets/lib/ResourceContainerConfig.xml [new file with mode: 0644]
test/src/tc/rc/junit/assets/lib/ResourceContainerEmptyConfig.xml [new file with mode: 0644]
test/src/tc/rc/junit/assets/lib/hue-0.1.jar [new file with mode: 0644]
test/src/tc/rc/junit/build.gradle [new file with mode: 0644]
test/src/tc/rc/junit/settings.gradle [new file with mode: 0755]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/btc/RCRcsValueTest.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/btc/RCResourceAttributesTest.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/btc/RCResourceBundleTest.java [new file with mode: 0755]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/btc/RCResourceConfigTest.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/btc/RCResourceContainerTest.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/helper/RCCommonUtil.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/helper/RCCommonUtilBTC.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/helper/RCHelper.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/helper/RCHelperBTC.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/stc/RCResourceBundleTest.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/stc/RCResourceConfigTest.java [new file with mode: 0644]
test/src/tc/rc/junit/src/org/iotivity/test/rc/tc/stc/RCResourceContainerTest.java [new file with mode: 0755]
test/src/tc/rd/gtest/include/RDHelper.h [new file with mode: 0644]
test/src/tc/rd/gtest/src/btc/RDClientTest.cpp [new file with mode: 0644]
test/src/tc/rd/gtest/src/btc/RDServerTest.cpp [new file with mode: 0644]
test/src/tc/rd/gtest/src/helper/RDHelper.cpp [new file with mode: 0644]
test/src/tc/rd/gtest/src/stc/RDClientIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/rd/gtest/src/stc/RDServerIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/include/REHelper.h [new file with mode: 0644]
test/src/tc/re/gtest/src/btc/RERepresentationTest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/btc/REResourceBrokerTest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/btc/REResourceCacheTest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/btc/REResourceWrapperTest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/btc/REServerBuilderTest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/helper/REHelper.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/stc/RERepresentationAPITest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/stc/REResourceBrokerAPITest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/stc/REResourceCacheAPITest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/stc/REResourceWrapperAPITest.cpp [new file with mode: 0644]
test/src/tc/re/gtest/src/stc/REServerBuilderAPITest.cpp [new file with mode: 0644]
test/src/tc/re/junit/AndroidManifest.xml [new file with mode: 0644]
test/src/tc/re/junit/build.gradle [new file with mode: 0644]
test/src/tc/re/junit/settings.gradle [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/btc/REResourceBrokerTest.java [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/btc/REResourceCacheTest.java [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/btc/REResourceWrapperTest.java [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/btc/REServerBuilderTest.java [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/helper/REAPIHelper.java [new file with mode: 0644]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/helper/REHelper.java [new file with mode: 0644]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/helper/ResourceProperties.java [new file with mode: 0644]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/helper/ResourceUtil.java [new file with mode: 0644]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/stc/REResourceBrokerTest.java [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/stc/REResourceCacheTest.java [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/stc/REResourceWrapperTest.java [new file with mode: 0755]
test/src/tc/re/junit/src/org/iotivity/test/re/tc/stc/REServerBuilderTest.java [new file with mode: 0755]
test/src/tc/ri/gtest/cpp/include/RIHelper.h [new file with mode: 0644]
test/src/tc/ri/gtest/cpp/src/btc/RIClientTest.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/cpp/src/btc/RIResourceTest.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/cpp/src/btc/RIServerTest.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/cpp/src/helper/RIHelper.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/cpp/src/stc/RICppIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/csdk/include/RICsdkHelper.h [new file with mode: 0644]
test/src/tc/ri/gtest/csdk/src/btc/RICsdkClientTest.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/csdk/src/btc/RICsdkServerTest.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/csdk/src/helper/RICsdkHelper.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/csdk/src/stc/RICsdkIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/ri/gtest/csdk/src/stc/RICsdkServerIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/ri/junit/AndroidManifest.xml [new file with mode: 0644]
test/src/tc/ri/junit/build.gradle [new file with mode: 0755]
test/src/tc/ri/junit/settings.gradle [new file with mode: 0755]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/btc/java-android/RIClientConfigTest.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/btc/java-android/RIServerConfigTest.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/btc/java-common/RIClientTest.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/btc/java-common/RIResourceTest.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/btc/java-common/RIServerTest.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/btc/java-generic/RIClientConfigTest.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/btc/java-generic/RIServerConfigTest.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/helper/IRIConstants.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/helper/RIHelper.java [new file with mode: 0644]
test/src/tc/ri/junit/src/org/iotivity/test/ri/tc/stc/RIIntegrationTest.java [new file with mode: 0644]
test/src/tc/sm/gtest/include/SMCommon.h [new file with mode: 0644]
test/src/tc/sm/gtest/include/SMHelper.h [new file with mode: 0644]
test/src/tc/sm/gtest/include/SMRemoteHelper.h [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMRemoteSceneActionTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMRemoteSceneCollectionTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMRemoteSceneListTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMRemoteSceneTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMSceneActionTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMSceneCollectionTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMSceneListTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/btc/SMSceneTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/helper/SMHelper.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/helper/SMRemoteHelper.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMRemoteSceneActionIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMRemoteSceneCollectionIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMRemoteSceneIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMRemoteSceneListIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMSceneActionIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMSceneCollectionIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMSceneIntegrationTest.cpp [new file with mode: 0644]
test/src/tc/sm/gtest/src/stc/SMSceneListIntegrationTest.cpp [new file with mode: 0644]
test/src/testapp/IUTSimulatorApp/c_cpp/include/IUTSimulatorUtils.h [new file with mode: 0644]
test/src/testapp/IUTSimulatorApp/c_cpp/include/SampleResourceFactory.h [new file with mode: 0644]
test/src/testapp/IUTSimulatorApp/c_cpp/src/IUTSimulator.cpp [new file with mode: 0644]
test/src/testapp/IUTSimulatorApp/c_cpp/src/IUTSimulatorUtils.cpp [new file with mode: 0644]
test/src/testapp/IUTSimulatorApp/c_cpp/src/SampleResourceFactory.cpp [new file with mode: 0644]
test/src/testapp/TcpClientApp/tcpclient.cpp [new file with mode: 0644]
test/src/testapp/ca/android/casimulator/build.gradle [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/gradle.properties [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/.gitignore [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/AndroidManifest.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/java/org/iotivity/CAJni.java [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/java/org/iotivity/ca/simulator/DLog.java [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/java/org/iotivity/ca/simulator/MainActivity.java [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/jni/Android.mk [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/jni/Application.mk [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/jni/CAJni.c [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/jni/org_iotivity_CAJni.h [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/layout/activity_main.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/menu/main.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/values-v11/styles.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/values-v14/styles.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/values-w820dp/dimens.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/values/dimens.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/values/strings.xml [new file with mode: 0755]
test/src/testapp/ca/android/casimulator/src/main/res/values/styles.xml [new file with mode: 0755]
test/src/testapp/ca/c_cpp/include/casimulator.h [new file with mode: 0755]
test/src/testapp/ca/c_cpp/src/ca_simulator.c [new file with mode: 0755]
test/src/testapp/ca/c_cpp/src/sample_client.c [new file with mode: 0755]
test/src/testapp/ca/c_cpp/src/sample_server.c [new file with mode: 0755]
test/src/testapp/cloud/cloud_server.cpp [new file with mode: 0644]
test/src/testapp/cs/iotivity_cs_server.cpp [new file with mode: 0644]
test/src/testapp/es/essim.c [new file with mode: 0644]
test/src/testapp/ic/iotivity_ic_server.cpp [new file with mode: 0644]
test/src/testapp/ns/cpp/include/NSSimulatorCppUtil.h [new file with mode: 0644]
test/src/testapp/ns/cpp/src/NSConsumerCppSimulator.cpp [new file with mode: 0644]
test/src/testapp/ns/cpp/src/NSProviderCppSimulator.cpp [new file with mode: 0644]
test/src/testapp/ns/csdk/include/NSSimulatorUtil.h [new file with mode: 0644]
test/src/testapp/ns/csdk/src/NSConsumerSimulator.cpp [new file with mode: 0644]
test/src/testapp/ns/csdk/src/NSProviderSimulator.cpp [new file with mode: 0644]
test/src/testapp/pm/iotivity_pm_client.cpp [new file with mode: 0644]
test/src/testapp/pm/iotivity_pm_server.cpp [new file with mode: 0644]
test/src/testapp/re/c_cpp/src/retestservers.cpp [new file with mode: 0644]
test/src/testapp/sm/c_cpp/src/sceneserver.cpp [new file with mode: 0644]
test/test_manager/ReadMe [new file with mode: 0644]
test/test_manager/add_gcov_flag.sh [new file with mode: 0755]
test/test_manager/android_test_runner.py [new file with mode: 0755]
test/test_manager/common_test_runner.py [new file with mode: 0755]
test/test_manager/configuration.py [new file with mode: 0755]
test/test_manager/convention_checker.py [new file with mode: 0755]
test/test_manager/defect_info.py [new file with mode: 0644]
test/test_manager/defect_reporter.py [new file with mode: 0755]
test/test_manager/devunittest_reporter.py [new file with mode: 0755]
test/test_manager/devunittest_runner.py [new file with mode: 0755]
test/test_manager/generate_gcov_report_n_clean.sh [new file with mode: 0755]
test/test_manager/inter_op_reporter.py [new file with mode: 0755]
test/test_manager/ite/config.py [new file with mode: 0755]
test/test_manager/ite/constants.py [new file with mode: 0755]
test/test_manager/ite/exec/multi_runner.py [new file with mode: 0644]
test/test_manager/ite/exec/run_options.py [new file with mode: 0644]
test/test_manager/ite/exec/runner.py [new file with mode: 0755]
test/test_manager/ite/exec/runner_info_setter.py [new file with mode: 0644]
test/test_manager/ite/exec/tc_executor.py [new file with mode: 0644]
test/test_manager/ite/exec/tc_utility_action.py [new file with mode: 0644]
test/test_manager/ite/multi_logger.py [new file with mode: 0644]
test/test_manager/ite/reporter/excel_util.py [new file with mode: 0755]
test/test_manager/ite/reporter/reporter_util.py [new file with mode: 0755]
test/test_manager/ite/reporter/result_reporter.py [new file with mode: 0755]
test/test_manager/ite/reporter/tc_reporter.py [new file with mode: 0755]
test/test_manager/ite/result/collector.py [new file with mode: 0755]
test/test_manager/ite/tc/analyzer.py [new file with mode: 0755]
test/test_manager/ite/tc/container.py [new file with mode: 0755]
test/test_manager/ite/tc/robot_analyzer.py [new file with mode: 0755]
test/test_manager/ite/tc/xmlanalyzer.py [new file with mode: 0755]
test/test_manager/ite/util.py [new file with mode: 0755]
test/test_manager/ite/webreporter/tc_list_reporter.py [new file with mode: 0755]
test/test_manager/ite/webreporter/webreporter_util.py [new file with mode: 0755]
test/test_manager/junit_reporter.py [new file with mode: 0755]
test/test_manager/junit_runner.py [new file with mode: 0755]
test/test_manager/make_tc_list.py [new file with mode: 0755]
test/test_manager/result_reporter.py [new file with mode: 0755]
test/test_manager/robottcxmlparser/defectworksheet.py [new file with mode: 0755]
test/test_manager/robottcxmlparser/reporter.py [new file with mode: 0644]
test/test_manager/robottcxmlparser/summaryworksheet.py [new file with mode: 0755]
test/test_manager/robottcxmlparser/tcworksheet.py [new file with mode: 0755]
test/test_manager/robottcxmlparser/tcworksheet2.py [new file with mode: 0644]
test/test_manager/robottcxmlparser/testcase.py [new file with mode: 0644]
test/test_manager/robottcxmlparser/testsuite.py [new file with mode: 0644]
test/test_manager/robottcxmlparser/utility.py [new file with mode: 0644]
test/test_manager/robottcxmlparser/xmlparser.py [new file with mode: 0644]
test/test_manager/tc_list.txt [new file with mode: 0644]
test/test_manager/tc_verdicts.txt [new file with mode: 0644]
test/test_manager/test_runner.py [new file with mode: 0755]
test/test_manager/testspec_reporter.py [new file with mode: 0755]
test/test_manager/tizen_test_runner.py [new file with mode: 0755]
test/test_manager/xml_reporter.py [new file with mode: 0755]
tools/fedora/Dockerfile
tools/tizen/iotivity.spec

index 127bd09..097787c 100644 (file)
@@ -43,6 +43,8 @@ Import('env')
 
 if os.environ.get('TERM') is not None:
     env['ENV']['TERM'] = os.environ['TERM']
+else:
+    env['ENV']['TERM'] = 'xterm'
 
 # Load extra options
 SConscript('extra_options.scons')
@@ -90,12 +92,15 @@ SConscript(dirs=[
 # Append target information to the help information (if needed)
 # To see help info, execute:
 #     $ scons [options] -h
-# Note some help is option-dependent, e.g. java-related options are
-# not added to the help unless BUILD_JAVA is seen
+# Note some help is option or target dependent, e.g. java-related
+# options are not added to the help unless BUILD_JAVA is seen
 #
-# This is not really needed unless requesting help, consider adding check:
-#if env.GetOption('help'):
-env.PrintTargets()
+if env.GetOption('help'):
+    env.PrintTargets()
 
 # to install the generated pc file into custom prefix location
 env.UserInstallTargetPCFile('iotivity.pc', 'iotivity.pc')
+
+# If we need to extract some of what scons knows at the end of
+# the scan phase for debugging, can use debug.scons to print things
+SConscript('debug.scons')
index ef3fe23..f8c0ee8 100755 (executable)
@@ -159,6 +159,7 @@ def build_linux_unsecured_with_java(flag, scons_options):
         'RELEASE': flag,
         'BUILD_JAVA': 1,
         'TARGET_TRANSPORT': 'IP',
+        'SECURED': 0,
         'ERROR_ON_WARN': 1,
     }
     call_scons(build_options, scons_options)
index b485ffc..8f5d039 100644 (file)
@@ -8,7 +8,7 @@ import sys
 import platform
 import re
 
-project_version = '2.0.0'
+project_version = '2.0.1'
 
 # Map of build host to possible target os
 host_target_map = {
@@ -181,9 +181,9 @@ help_vars.AddVariables(
                  'Build with sample',
                  default='ON',
                  allowed_values=('ON', 'OFF')),
-#    ANDROID_NDK set at end after default computed
-#    ANDROID_HOME set at end after default computed
-#    ANDROID_GRADLE set at end after default computed
+    # ANDROID_NDK set at end after default computed
+    # ANDROID_HOME set at end after default computed
+    # ANDROID_GRADLE set at end after default computed
     BoolVariable('WITH_ENV',
                  'Use compiler options from environment',
                  default=False),
@@ -392,23 +392,51 @@ if host in ['windows']:
 # Ensure scons is able to change its working directory
 env.SConscriptChdir(1)
 
+# To cut down how much is built, enable the Default(DefTarg) line.
+# Only those targets added to the alias "DefaultTargets" will
+# then be built by default, else scons will by default build
+# all targets it finds. "DefaultTargets" is added to by calls
+# to InstallTarget and AppendTarget, unless those methods are
+# passed the argument default=False
+#
+DefTarg = Alias("DefaultTargets")
+# Default(DefTarg)
+
 ######################################################################
 # Convenience functions to "extend" SCons
+#
+# Functions are added into scope of the rest of the build system
+# by calling AddMethod
+#
+# These should probably move to site_init for better findability
 ######################################################################
 
+def SetDir(env, dir):
+    """
+    Set up the target directory for building.
+
+    Sets up the scons Variant directory, which is where objects
+    built under scons control will go, rather than in the source tree.
+    Also shortcuts some of the available scons mechansims by saving the
+    paths in the construction environment. Since this sets the
+    variant dir, this should be called only once, using the main
+    main construction environment. These are retrieved by:
+        env.get('SRC_DIR')
+        env.get('BUILD_DIR')
+
+    SRC_DIR will be the passed directory, while BUILD_DIR is
+    constructed based on target system/arch and release mode.
+    On Windows:
+        'dir'/out/windows/<win32 or uwp>/<target_arch>/<release or debug>/
+
+    On all others:
+        'dir'/out/<target_os>/<target_arch>/<release or debug>/
+
+    Args:
+        env: construction environment
+        dir: the source directory
+    """
 
-def __set_dir(env, dir):
-    #
-    # Set the source and build directories
-    #   Source directory: 'dir'
-    #   Build directory: 'dir'/out/<target_os>/<target_arch>/<release or debug>/
-    #   On windows, the build directory will be:
-    #     'dir'/out/windows/<win32 or uwp>/<target_arch>/<release or debug>/
-    #
-    # You can get the directory as following:
-    #   env.get('SRC_DIR')
-    #   env.get('BUILD_DIR')
-    #
     if not os.path.exists(dir + '/SConstruct'):
         msg = '''
 *************************************** Error *********************************
@@ -438,49 +466,134 @@ def __set_dir(env, dir):
     env.Replace(BUILD_DIR=build_dir)
     env.Replace(SRC_DIR=dir)
 
+env.AddMethod(SetDir)
 
-def __src_to_obj(env, src, home=''):
-    '''
-    Make sure builds happen in BUILD_DIR (by default they
-    would happen in the directory of the source file)
-    Note this does not seem to be used, VariantDir is used instead
-    '''
+
+def SrcToObj(env, src, home=''):
+    """
+    Build an object in BUILD_DIR.
+
+    Uses BUILD_DIR, SetDir should have been called previously.
+    Note this is used only in the android compat script.
+
+    Args:
+        env: construction environment
+        src: source directory
+        home: the part of the path to chop off
+    """
     obj = env.get('BUILD_DIR') + src.replace(home, '')
     if env.get('OBJSUFFIX'):
         obj += env.get('OBJSUFFIX')
     return env.Object(obj, src)
 
-
-def __install(ienv, targets, name=''):
-    '''
-    Copy files to internal place (not for install to system)
-    only use UserInstall() for copying files to system using "scons install"
-    '''
+env.AddMethod(SrcToObj)
+
+
+def InstallTarget(ienv, targets, name=None, default=True):
+    """
+    Copy a built target to the common location.
+
+    The iotivity build puts the libraries and executables in a common
+    location to make it easy to run the executables in place without
+    worrying about the rpath (for systems that have it), or to account
+    for no rpath option being available (Windows systems).  This not
+    the same as "installing", see the UserInstall* methods for that.
+
+    As side effects, the target is added to either the list of default
+    targets or non-default targets, which are later handed to the Help
+    function to help display options to the user.  If this is a default
+    target, it is also added to the DefaultTargets alias.
+
+    Args:
+        ienv: the construction environment of the caller.
+        targets: list of targets to copy.
+        name: if set, the name to copy to; else use the target name.
+        default: whether this is a default target or not.
+
+    Notes:
+        If used for copying a library, a race condition may occur on
+        Windows systems if parallel building is enabled.  The separate
+        operations from the SharedLibrary builder and the Command builder
+        calling Copy may see Python release the Global Interpreter Lock
+        in between steps, and another task may conclude the library
+        is ready before the copy has taken place, and then report a
+        missing dependency. A workaround is to generate the library
+        directly into the common location so it does not need to be
+        copied after building.
+
+    See Also:
+        AppendTarget
+    """
     for filename in ienv.GetBuildPath(targets):
         basename = os.path.basename(filename)
         dst = env.get('BUILD_DIR') + basename
         i_n = Command(dst, filename, Copy("$TARGET", "$SOURCE"))
-        if '' == name:
+        if not name:
             name = basename
         ienv.Alias(name, i_n)
-        env.AppendUnique(TS=[name])
 
+        # note the aliases are added to the target lists in the
+        # main construction environment, not the one we're called from
+        if default:
+            env.AppendUnique(DefaultBuild=[name])
+            Alias("DefaultTargets", name)
+        else:
+            env.AppendUnique(NoDefaultBuild=[name])
 
-def __chrpath(target, source, env):
-    '''
-    Remove RPATH (if installed elsewhere)
-    '''
-    if target_os in ['linux', 'tizen']:
-        env.Command(None, target, 'chrpath -d $SOURCE')
+env.AddMethod(InstallTarget)
 
 
-def __installlib(ienv, targets, name=''):
-    '''
-    Install files to system, using "scons install" and remove rpath info if present
-    If prefix or lib install dir is not specified, for developer convenience
-    files are copied in relative "deploy" folder along executables (rpath is kept)
-    to avoid overlap with "internal place" above
-    '''
+def AppendTarget(ienv, name, targets=None, default=True):
+    """
+    Add targets to target list.
+
+    The target 'name' is added to either the list of default targets
+    or non-default targets, which are later handed to the Help function
+    to help display options to the user.  If this is a default target,
+    it is also added to the DefaultTargets alias.
+
+    Args:
+        ienv: the construction environment of the caller.
+        name: target name to add.
+        targets: aliases the 'name' target will expand to.
+        default: whether this is a default target or not.
+
+    See Also:
+        AppendTarget
+    """
+    if targets:
+        env.Alias(name, targets)
+    if default:
+        env.AppendUnique(DefaultBuild=[name])
+        Alias("DefaultTargets", name)
+    else:
+        env.AppendUnique(NoDefaultBuild=[name])
+
+env.AddMethod(AppendTarget)
+
+
+def UserInstallTargetLib(ienv, targets, name=None):
+    """
+    Install built libraries to a "system" location.
+
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with a 'lib' suffix, unless
+    LIB_INSTALL_DIR is also set in which case it is used unchanged.
+    If neither, a 'deploy' subdirectory of the common build location
+    is used. Unless deploy was used, the rpath is stripped.
+
+    Args:
+        ienv: construction environment of caller
+        targets: libraries to install
+        name: currently unused (future: installation name)
+    """
+    def __chrpath(target, source, env):
+        """
+        Remove RPATH if present.
+        """
+        if target_os in ['linux', 'tizen']:
+            env.Command(None, target, 'chrpath -d $SOURCE')
+
     user_prefix = env.get('PREFIX')
     if user_prefix:
         user_lib = env.get('LIB_INSTALL_DIR')
@@ -495,14 +608,22 @@ def __installlib(ienv, targets, name=''):
         ienv.AddPostAction(action, __chrpath)
     ienv.Alias("install", action)
 
+env.AddMethod(UserInstallTargetLib)
 
 
-def __installbin(ienv, targets, name=''):
-    '''
-    ' Install files to system, using "scons install"
-    ' If prefix is not specified, for developer convenience
-    ' files are copied in relative "deploy" folder along libraries
-    '''
+def UserInstallTargetBin(ienv, targets, name=None):
+    """
+    Install built binaries to a "system" location.
+
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with a 'bin' suffix, else a 'deploy'
+    subdirectory of the common build location is used.
+
+    Args:
+        ienv: construction environment of caller
+        targets: libraries to install
+        name: currently unused (future: installation name)
+    """
     user_prefix = env.get('PREFIX')
     if user_prefix:
         dst_dir  = user_prefix + '/bin'
@@ -510,8 +631,24 @@ def __installbin(ienv, targets, name=''):
         dst_dir  = env.get('BUILD_DIR') + '/deploy'
     ienv.Alias("install", ienv.Install(dst_dir , targets))
 
+env.AddMethod(UserInstallTargetBin)
+
+
+def UserInstallTargetHeader(ienv, targets, dir="", name=None):
+    """
+    Install header files to a "system" location.
+
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with an 'include/iotivity' suffix, else a
+    'deploy/include' subdirectory of the common build location is used.
+    If dir is present, it as appended to the installation path.
 
-def __installheader(ienv, targets, dir, name):
+    Args:
+        ienv: construction environment of caller
+        targets: headers to install
+        dir: additional subdirectory to use in install location
+        name: currently unused (future: installation name)
+    """
     user_prefix = env.get('PREFIX')
     if user_prefix:
         i_n = ienv.Install(user_prefix + '/include/iotivity/' + dir, targets)
@@ -519,8 +656,24 @@ def __installheader(ienv, targets, dir, name):
         i_n = ienv.Install(env.get('BUILD_DIR') + 'deploy/include/' + dir, targets)
     ienv.Alias("install", i_n)
 
+env.AddMethod(UserInstallTargetHeader)
 
-def __installpcfile(ienv, targets, name):
+
+def UserInstallTargetPCFile(ienv, targets, name=None):
+    """
+    Install pkg-config files to a "system" location.
+
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with a 'lib/pkgconfig' suffix, unless
+    LIB_INSTALL_DIR is also set in which case it is used with a 'pkgconfig'
+    suffix.  If neither, a 'deploy/pkgconfig' subdirectory of the common
+    build location is used.
+
+    Args:
+        ienv: construction environment of caller
+        targets: files to install
+        name: currently unused (future: installation name)
+    """
     user_prefix = env.get('PREFIX')
     if user_prefix:
         user_lib = env.get('LIB_INSTALL_DIR')
@@ -532,66 +685,86 @@ def __installpcfile(ienv, targets, name):
         i_n = ienv.Install(env.get('BUILD_DIR') + 'deploy/pkgconfig', targets)
     ienv.Alias("install", i_n)
 
+env.AddMethod(UserInstallTargetPCFile)
 
-def __installextra(ienv, targets, subdir="."):
-    '''
-    Install extra files, by default use file relative location as subdir
-    or use any other prefix of your choice, or in explicit "deploy" folder
-    '''
+
+def UserInstallTargetExtra(ienv, targets, subdir=None):
+    """
+    Install files to system location.
+
+    Install "extra" files not covered by the other system-install methods,
+    such as tests, xml files, security data files, etc., when doing
+    "scons install". If PREFIX is set it is used with a 'lib/iotivity' suffix,
+    unless LIB_INSTALL_DIR is also set in which case it is used with an
+    'iotivity' suffix. If neither, a 'deploy/extra' subdirectory of the
+    common build location is used.  If subdir is set, it is added to
+    the end of whichever install path is selected. If not set, the
+    tail of the path is computed.
+
+    Args:
+        ienv: construction environment of caller
+        targets: files to install
+        subdir: if set, use as the tail of the installation path
+    """
     user_lib = env.get('LIB_INSTALL_DIR')
     user_prefix = env.get('PREFIX')
+    if subdir is None:
+        subdir = Dir('.').srcnode().path
+    if user_lib:
+        dst = user_lib + '/iotivity/' + subdir
+    elif user_prefix:
+        dst = user_prefix + '/lib/iotivity/' + subdir
+    else:
+        dst = env.get('BUILD_DIR') + '/deploy/extra/' + subdir
     for target in targets:
-        if "." == subdir:
-            dst = Dir('.').srcnode().path
-        else:
-            dst = subdir
-        if user_lib:
-            dst = user_lib + '/iotivity/' + dst
-        elif user_prefix:
-            dst = user_prefix + '/lib/iotivity/' + dst
-        else:
-            dst = env.get('BUILD_DIR') + '/deploy/extra/' + dst
         i_n = ienv.Install(dst, target)
         ienv.Alias('install', i_n)
 
+env.AddMethod(UserInstallTargetExtra)
 
-def __append_target(ienv, name, targets=None):
-    if targets:
-        env.Alias(name, targets)
-    env.AppendUnique(TS=[name])
 
+def AddPthreadIfNeeded(ienv):
+    """
+    Set a linker flag to enable POSIX threads, if needed.
 
-def __add_pthread_if_needed(ienv):
+    Args:
+        ienv: construction environment of caller
+    """
     if 'gcc' == ienv.get('CC') and target_os not in ['android']:
         ienv.AppendUnique(LINKFLAGS="-pthread")
 
+env.AddMethod(AddPthreadIfNeeded)
 
-def __print_targets(env):
-    Help('''
+
+def PrintTargets(env):
+    """
+    Add message about IoTivity build targets to help message.
+
+    Args:
+        env: construction envrionment
+    """
+    Help("""
 ===============================================================================
-Targets:\n    ''')
-    for t in env.get('TS'):
+Default Targets:\n    """)
+    for t in env.get("DefaultBuild"):
         Help(t + ' ')
-    Help('''
 
-Default: all targets will be built. You can specify the target to build:
+    if env.get("NoDefaultBuild"):
+        Help("\n\nNon-default Targets:\n    ")
+        for t in env.get('NoDefaultBuild'):
+            Help(t + ' ')
+
+    Help("""
+
+All default targets will be built.  You can specify any target(s) to build:
 
     $ scons [options] [target]
 ===============================================================================
-''')
-
-
-env.AddMethod(__set_dir, 'SetDir')
-env.AddMethod(__print_targets, 'PrintTargets')
-env.AddMethod(__src_to_obj, 'SrcToObj')
-env.AddMethod(__append_target, 'AppendTarget')
-env.AddMethod(__add_pthread_if_needed, 'AddPthreadIfNeeded')
-env.AddMethod(__install, 'InstallTarget')
-env.AddMethod(__installlib, 'UserInstallTargetLib')
-env.AddMethod(__installbin, 'UserInstallTargetBin')
-env.AddMethod(__installheader, 'UserInstallTargetHeader')
-env.AddMethod(__installpcfile, 'UserInstallTargetPCFile')
-env.AddMethod(__installextra, 'UserInstallTargetExtra')
+""")
+
+env.AddMethod(PrintTargets)
+
+
 env.SetDir(env.GetLaunchDir())
 env['ROOT_DIR'] = env.GetLaunchDir() + '/..'
 
@@ -927,7 +1100,7 @@ def ScanJSON(env, directory=None):
             targets += Command(dst, src, Copy("$TARGET", "$SOURCE"))
     return targets
 
-AddMethod(env, ScanJSON)
+env.AddMethod(ScanJSON)
 
 ######################################################################
 env.SConscript('external_libs.scons')
index 340fae4..dc190d3 100644 (file)
@@ -49,6 +49,7 @@
                <dependency>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
+                       <version>[2.8.11.1,)</version>
                </dependency>
                <dependency>
                        <groupId>com.fasterxml.jackson.dataformat</groupId>
diff --git a/debug.scons b/debug.scons
new file mode 100644 (file)
index 0000000..ded9bf3
--- /dev/null
@@ -0,0 +1,55 @@
+#******************************************************************
+#
+# Copyright 2019 Open Connectivity Foundation
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+# put end-of-scan-phase debug stuff here
+# comment out when not using
+
+from __future__ import print_function
+
+Import("env")
+
+from pprint import pprint
+
+#pprint(env.Dump())
+
+#if COMMAND_LINE_TARGETS:
+#    print("COMMAND_LINE_TARGETS:")
+#    pprint(COMMAND_LINE_TARGETS)
+
+#if DEFAULT_TARGETS:
+#    print("DEFAULT_TARGETS:")
+#    pprint([str(t) for t in DEFAULT_TARGETS])
+
+#if BUILD_TARGETS:
+#    print("BUILD_TARGETS:")
+#    pprint([str(t) for t in BUILD_TARGETS])
+
+#print("Named targets for default building:")
+#pprint(sorted(env.get('DefaultBuild')))
+
+#if env.get("NoDefaultBuild"):
+#    print("Named targets not built by default:")
+#    pprint(sorted(env.get('NoDefaultBuild')))
+
+#from SCons.Script.SConscript import global_exports
+#print("Exports:")
+#pprint(list(global_exports.keys()))
+
+Return()
diff --git a/doc/added-methods.rst b/doc/added-methods.rst
new file mode 100644 (file)
index 0000000..1874d7e
--- /dev/null
@@ -0,0 +1,178 @@
+Convenience Methods Added to 'env' by IoTivity Project
+======================================================
+
+Methods
+---------
+
+`AddPthreadIfNeeded(ienv)`
+:   Set a linker flag to enable POSIX threads, if needed.
+    
+    Args:
+        ienv: construction environment of caller
+
+`AppendTarget(ienv, name, targets=None, default=True)`
+:   Add targets to target list.
+    
+    The target 'name' is added to either the list of default targets
+    or non-default targets, which are later handed to the Help function
+    to help display options to the user.  If this is a default target,
+    it is also added to the DefaultTargets alias.
+    
+    Args:
+        ienv: the construction environment of the caller.
+        name: target name to add.
+        targets: aliases the 'name' target will expand to.
+        default: whether this is a default target or not.
+    
+    See Also:
+        AppendTarget
+
+`InstallTarget(ienv, targets, name=None, default=True)`
+:   Copy a built target to the common location.
+    
+    The iotivity build puts the libraries and executables in a common
+    location to make it easy to run the executables in place without
+    worrying about the rpath (for systems that have it), or to account
+    for no rpath option being available (Windows systems).  This not
+    the same as "installing", see the UserInstall* methods for that.
+    
+    As side effects, the target is added to either the list of default
+    targets or non-default targets, which are later handed to the Help
+    function to help display options to the user.  If this is a default
+    target, it is also added to the DefaultTargets alias.
+    
+    Args:
+        ienv: the construction environment of the caller.
+        targets: list of targets to copy.
+        name: if set, the name to copy to; else use the target name.
+        default: whether this is a default target or not.
+    
+    Notes:
+        If used for copying a library, a race condition may occur on
+        Windows systems if parallel building is enabled.  The separate
+        operations from the SharedLibrary builder and the Command builder
+        calling Copy may see Python release the Global Interpreter Lock
+        in between steps, and another task may conclude the library
+        is ready before the copy has taken place, and then report a
+        missing dependency. A workaround is to generate the library
+        directly into the common location so it does not need to be
+        copied after building.
+    
+    See Also:
+        AppendTarget
+
+`PrintTargets(env)`
+:   Add message about IoTivity build targets to help message.
+    
+    Args:
+        env: construction envrionment
+
+`ScanJSON(env, directory=None)`
+:   scanner
+
+`SetDir(env, dir)`
+:   Set up the target directory for building.
+    
+    Sets up the scons Variant directory, which is where objects
+    built under scons control will go, rather than in the source tree.
+    Also shortcuts some of the available scons mechansims by saving the
+    paths in the construction environment. Since this sets the
+    variant dir, this should be called only once, using the main
+    main construction environment. These are retrieved by:
+        env.get('SRC_DIR')
+        env.get('BUILD_DIR')
+    
+    SRC_DIR will be the passed directory, while BUILD_DIR is
+    constructed based on target system/arch and release mode.
+    On Windows:
+        'dir'/out/windows/<win32 or uwp>/<target_arch>/<release or debug>/
+    
+    On all others:
+        'dir'/out/<target_os>/<target_arch>/<release or debug>/
+    
+    Args:
+        env: construction environment
+        dir: the source directory
+
+`SrcToObj(env, src, home='')`
+:   Build an object in BUILD_DIR.
+    
+    Uses BUILD_DIR, SetDir should have been called previously.
+    Note this is used only in the android compat script. 
+    
+    Args:
+        env: construction environment
+        src: source directory
+        home: the part of the path to chop off
+
+`UserInstallTargetBin(ienv, targets, name=None)`
+:   Install built binaries to a "system" location.
+    
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with a 'bin' suffix, else a 'deploy'
+    subdirectory of the common build location is used.
+    
+    Args:
+        ienv: construction environment of caller
+        targets: libraries to install
+        name: currently unused (future: installation name)
+
+`UserInstallTargetExtra(ienv, targets, subdir=None)`
+:   Install files to system location.
+    
+    Install "extra" files not covered by the other system-install methods,
+    such as tests, xml files, security data files, etc., when doing
+    "scons install". If PREFIX is set it is used with a 'lib/iotivity' suffix,
+    unless LIB_INSTALL_DIR is also set in which case it is used with an
+    'iotivity' suffix. If neither, a 'deploy/extra' subdirectory of the
+    common build location is used.  If subdir is set, it is added to
+    the end of whichever install path is selected. If not set, the
+    tail of the path is computed 
+    
+    Args:
+        ienv: construction environment of caller
+        targets: files to install
+        subdir: if set, use as the tail of the installation path
+
+`UserInstallTargetHeader(ienv, targets, dir='', name=None)`
+:   Install header files to a "system" location.
+    
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with an 'include/iotivity' suffix, else a
+    'deploy/include' subdirectory of the common build location is used.
+    If dir is present, it as appended to the installation path.
+    
+    Args:
+        ienv: construction environment of caller
+        targets: headers to install
+        dir: additional subdirectory to use in install location
+        name: currently unused (future: installation name)
+
+`UserInstallTargetLib(ienv, targets, name=None)`
+:   Install built libraries to a "system" location.
+    
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with a 'lib' suffix, unless
+    LIB_INSTALL_DIR is also set in which case it is used unchanged.
+    If neither, a 'deploy' subdirectory of the common build location
+    is used. Unless deploy was used, the rpath is stripped.
+    
+    Args:
+        ienv: construction environment of caller
+        targets: libraries to install
+        name: currently unused (future: installation name)
+
+`UserInstallTargetPCFile(ienv, targets, name=None)`
+:   Install pkg-config files to a "system" location.
+    
+    Install files to system location, when running "scons install".
+    If PREFIX is set it is used with a 'lib/pkgconfig' suffix, unless
+    LIB_INSTALL_DIR is also set in which case it is used with a 'pkgconfig'
+    suffix.  If neither, a 'deploy/pkgconfig' subdirectory of the common
+    build location is used.
+    
+    Args:
+        ienv: construction environment of caller
+        targets: files to install
+        name: currently unused (future: installation name)
+
diff --git a/extlibs/gtest/googletest.spec b/extlibs/gtest/googletest.spec
new file mode 100644 (file)
index 0000000..5e643a9
--- /dev/null
@@ -0,0 +1,33 @@
+Name: googletest
+Version: 1.7.0
+Release: 0
+Summary: Lib for unit testing
+Source: %{name}-%{version}.tar.gz
+License: BSD-3-Clause
+BuildRequires: make
+
+%description
+Lib for unit testing
+
+%prep
+
+%setup -q -n %{name}-%{version}
+
+%build
+
+%reconfigure
+%__make
+
+echo "TODO: make_install to preserve static lib"
+rpm --eval '%make_install'
+install -d "%{buildroot}/%{_includedir}/" "%{buildroot}/%{_libdir}/"
+cp -rfa include/gtest "%{buildroot}/%{_includedir}/"
+cp -a lib/.libs/lib*.a "%{buildroot}/%{_libdir}/"
+touch debugsources.list
+
+%clean
+
+%files
+%license LICENSE
+%{_includedir}/*
+%{_libdir}/*
index f3e87e7..c74e5b1 100644 (file)
@@ -235,7 +235,8 @@ jdk_env = None
 if target_os in ['android']:
     # Gradle needs some settings in the environment:
     jdk_env = env.Clone(ENV={'JAVA_HOME':env['JAVA_HOME'],
-                             'ANDROID_HOME':env['ANDROID_HOME']})
+                             'ANDROID_HOME':env['ANDROID_HOME'],
+                             'TERM':env['ENV']['TERM']})
 else:
     jdk_env = env.Clone()
 
index 03594dc..fce0ea5 100644 (file)
@@ -39,7 +39,7 @@
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 
-PROJECT_VERSION=2.0.0
+PROJECT_VERSION=2.0.1
 MULTIPLE_OWNER=0
 WITH_CLOUD=0
 WITH_TRANSPORT_EDR=0
index 4df5814..16dcae0 100644 (file)
@@ -853,6 +853,59 @@ public final class OcPlatform {
             OcResourceHandle ocResourceCollectionHandle,
             OcResourceHandle[] ocResourceHandleArray) throws OcException;
 
+    /**
+     * Add a resource to a collection / atomic measurement resource
+     *
+     * @param ocResourceAmColHandle handle to the collection / atomic measurement resource
+     * @param ocResourceHandle      handle to resource to be added to the collection / atomic measurement resource
+     * @param isAtomicMeasurement   boolean indicating if this is a collection or an atomic measurement
+     * @throws OcException if failure
+     */
+    public static void bindResourceAM(
+            OcResourceHandle ocResourceAmColHandle,
+            OcResourceHandle ocResourceHandle,
+            boolean isAtomicMeasurement) throws OcException {
+        OcPlatform.initCheck();
+        OcPlatform.bindResourceAM0(ocResourceAmColHandle, ocResourceHandle, isAtomicMeasurement);
+    }
+
+    private static native void bindResourceAM0(
+            OcResourceHandle ocResourceAmColHandle,
+            OcResourceHandle ocResourceHandle,
+            boolean isAtomicMeasurement) throws OcException;
+
+    /**
+     * Add multiple resources to a collection / atomic measurement resource.
+     *
+     * @param ocResourceAmColHandle handle to the collection / atomic measurement resource
+     * @param ocResourceHandleList  reference to list of resource handles to be added to the
+     *                              collection / atomic measurement resource
+     * @param isAtomicMeasurement   boolean indicating if this is a collection or an atomic measurement
+     * @throws OcException if failure
+     */
+    public static void bindResourcesAM(
+            OcResourceHandle ocResourceAmColHandle,
+            List<OcResourceHandle> ocResourceHandleList,
+            boolean isAtomicMeasurement) throws OcException {
+        OcPlatform.initCheck();
+
+        if (ocResourceHandleList == null) {
+            throw new OcException(ErrorCode.INVALID_PARAM, "ocResourceHandleList cannot be null");
+        }
+
+        OcPlatform.bindResourcesAM0(
+                ocResourceAmColHandle,
+                ocResourceHandleList.toArray(
+                        new OcResourceHandle[ocResourceHandleList.size()]),
+                isAtomicMeasurement
+        );
+    }
+
+    private static native void bindResourcesAM0(
+            OcResourceHandle ocResourceAmColHandle,
+            OcResourceHandle[] ocResourceHandleArray,
+            boolean isAtomicMeasurement) throws OcException;
+
     /**
      * Unbind a resource from a collection resource.
      *
@@ -917,6 +970,24 @@ public final class OcPlatform {
             OcResourceHandle ocResourceHandle,
             String resourceTypeName) throws OcException;
 
+    /**
+     * Adds a type to the rts-m of a resource
+     *
+     * @param ocResourceHandle handle to the resource
+     * @param resourceTypeName new typename to add to the rts-m of the resource
+     * @throws OcException if failure
+     */
+    public static void bindRtsMToResource(
+            OcResourceHandle ocResourceHandle,
+            String resourceTypeName) throws OcException {
+        OcPlatform.initCheck();
+        OcPlatform.bindRtsMToResource0(ocResourceHandle, resourceTypeName);
+    }
+
+    private static native void bindRtsMToResource0(
+            OcResourceHandle ocResourceHandle,
+            String resourceTypeName) throws OcException;
+
     /**
      * Binds an interface to a particular resource
      *
@@ -1156,6 +1227,20 @@ public final class OcPlatform {
     private static native void sendResponse0(OcResourceResponse ocResourceResponse)
             throws OcException;
 
+    /**
+     * This function notifies the atomic measurement that a new atomic measurement is available
+     * (because one or more of the values of the resources composing it have changed).
+     *
+     * @param handle            Handle of resource.
+     *
+     */
+    public static void notifyNewAMAvailable(OcResourceHandle resourceHandle) throws OcException {
+        OcPlatform.initCheck();
+        OcPlatform.notifyNewAMAvailable0(resourceHandle);
+    }
+
+    private static native void notifyNewAMAvailable0(OcResourceHandle resourceHandle) throws OcException;
+
     /**
      * An OnResourceFoundListener can be registered via the OcPlatform.findResource call.
      * Event listeners are notified asynchronously
index ed41591..30b198f 100644 (file)
@@ -30,6 +30,9 @@
 #include "ocpayload.h"
 #include "RDClient.h"
 
+#include "JniOcRequestHandle.h"
+#include "JniOcRepresentation.h"
+
 #ifdef WITH_CLOUD
 #include "JniOcAccountManager.h"
 #endif
@@ -1983,6 +1986,135 @@ JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0(
     }
 }
 
+/*
+* Class:     org_iotivity_base_OcPlatform
+* Method:    bindResourceAM0
+* Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;Z)V
+*/
+JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResourceAM0
+(JNIEnv *env, jclass clazz, jobject jResourceAmColHandle, jobject jResourceHandle, jboolean jIsAtomicMeasurement)
+{
+    OC_UNUSED(clazz);
+    LOGI("OcPlatform_bindResourceAM");
+    if (!jResourceAmColHandle)
+    {
+        ThrowOcException(OC_STACK_INVALID_PARAM, "resourceAmColHandle cannot be null");
+        return;
+    }
+    if (!jResourceHandle)
+    {
+        ThrowOcException(OC_STACK_INVALID_PARAM, "resourceHandle cannot be null");
+        return;
+    }
+    JniOcResourceHandle* jniOcResourceAmColHandle =
+        JniOcResourceHandle::getJniOcResourceHandlePtr(env, jResourceAmColHandle);
+    if (!jniOcResourceAmColHandle)
+    {
+        return;
+    }
+
+    JniOcResourceHandle* jniOcResourceHandle = JniOcResourceHandle::getJniOcResourceHandlePtr(
+        env, jResourceHandle);
+    if (!jniOcResourceHandle)
+    {
+        return;
+    }
+
+    try
+    {
+        OCStackResult result = OCPlatform::bindResourceAM(
+            jniOcResourceAmColHandle->getOCResourceHandle(),
+            jniOcResourceHandle->getOCResourceHandle(),
+            jIsAtomicMeasurement
+            );
+
+        if (OC_STACK_OK != result)
+        {
+            ThrowOcException(result, "Failed to bind collection / atomic measurement resource");
+        }
+    }
+    catch (OCException& e)
+    {
+        LOGE("%s", e.reason().c_str());
+        ThrowOcException(e.code(), e.reason().c_str());
+    }
+}
+
+/*
+* Class:     org_iotivity_base_OcPlatform
+* Method:    bindResourcesAM0
+* Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;Z)V
+*/
+JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResourcesAM0(
+    JNIEnv *env,
+    jclass clazz,
+    jobject jResourceAmColHandle,
+    jobjectArray jResourceHandleArray,
+    jboolean jIsAtomicMeasurement)
+{
+    OC_UNUSED(clazz);
+    LOGI("OcPlatform_bindResourcesAM");
+
+    if (!jResourceAmColHandle)
+    {
+        ThrowOcException(OC_STACK_INVALID_PARAM, "resourceAmColHandle cannot be null");
+        return;
+    }
+    if (!jResourceHandleArray)
+    {
+        ThrowOcException(OC_STACK_INVALID_PARAM, "resourceHandleList cannot be null");
+        return;
+    }
+
+    JniOcResourceHandle* jniOcResourceAmColHandle =
+        JniOcResourceHandle::getJniOcResourceHandlePtr(env, jResourceAmColHandle);
+    if (!jniOcResourceAmColHandle)
+    {
+        return;
+    }
+
+    std::vector<OCResourceHandle> resourceHandleList;
+    int len = env->GetArrayLength(jResourceHandleArray);
+    for (int i = 0; i < len; ++i)
+    {
+        jobject jResourceHandle = env->GetObjectArrayElement(jResourceHandleArray, i);
+        if (!jResourceHandle)
+        {
+            ThrowOcException(JNI_EXCEPTION, "resource handle cannot be null");
+            return;
+        }
+
+        JniOcResourceHandle* jniOcResourceHandle =
+            JniOcResourceHandle::getJniOcResourceHandlePtr(env, jResourceHandle);
+        if (!jniOcResourceHandle)
+        {
+            return;
+        }
+
+        resourceHandleList.push_back(
+            jniOcResourceHandle->getOCResourceHandle());
+    }
+
+    try
+    {
+        OCStackResult result = OCPlatform::bindResourcesAM(
+            jniOcResourceAmColHandle->getOCResourceHandle(),
+            resourceHandleList,
+            jIsAtomicMeasurement
+            );
+
+        if (OC_STACK_OK != result)
+        {
+            ThrowOcException(result, "Failed to bind collection / atomic measurement resources");
+        }
+    }
+    catch (OCException& e)
+    {
+        LOGE("%s", e.reason().c_str());
+        ThrowOcException(e.code(), e.reason().c_str());
+    }
+}
+
 /*
 * Class:     org_iotivity_base_OcPlatform
 * Method:    unbindResource0
@@ -2161,6 +2293,56 @@ JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0(
     }
 }
 
+/*
+* Class:     org_iotivity_base_OcPlatform
+* Method:    bindRtsMToResource0
+* Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
+*/
+JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindRtsMToResource0(
+    JNIEnv *env,
+    jclass clazz,
+    jobject jResourceHandle,
+    jstring jResourceTypeName)
+{
+    OC_UNUSED(clazz);
+    LOGI("OcPlatform_bindRtsMToResource");
+    if (!jResourceHandle)
+    {
+        ThrowOcException(OC_STACK_INVALID_PARAM, "resourceHandle cannot be null");
+        return;
+    }
+    std::string typeName;
+    if (jResourceTypeName)
+    {
+        typeName = env->GetStringUTFChars(jResourceTypeName, nullptr);
+    }
+
+    JniOcResourceHandle* jniOcResourceHandle =
+        JniOcResourceHandle::getJniOcResourceHandlePtr(env, jResourceHandle);
+    if (!jniOcResourceHandle)
+    {
+        return;
+    }
+
+    try
+    {
+        OCStackResult result = OCPlatform::bindRtsMToResource(
+            jniOcResourceHandle->getOCResourceHandle(),
+            typeName
+            );
+
+        if (OC_STACK_OK != result)
+        {
+            ThrowOcException(result, "Failed to add type to the rts-m of the resource");
+        }
+    }
+    catch (OCException& e)
+    {
+        LOGE("%s", e.reason().c_str());
+        ThrowOcException(e.code(), e.reason().c_str());
+    }
+}
+
 /*
 * Class:     org_iotivity_base_OcPlatform
 * Method:    bindInterfaceToResource0
@@ -2663,6 +2845,46 @@ JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0(
     }
 }
 
+/*
+* Class:     org_iotivity_base_OcPlatform
+* Method:    notifyNewAMAvailable0
+* Signature: (Lorg/iotivity/base/OcResourceHandle;)V
+*/
+JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyNewAMAvailable0
+    (JNIEnv *env, jclass clazz, jobject jResourceHandle)
+{
+    OC_UNUSED(clazz);
+    LOGD("OcPlatform_notifyNewAMAvailable");
+    if (!jResourceHandle)
+    {
+        ThrowOcException(OC_STACK_INVALID_PARAM, "resourceHandle cannot be null");
+        return;
+    }
+
+    JniOcResourceHandle* jniOcResourceHandle =
+        JniOcResourceHandle::getJniOcResourceHandlePtr(env, jResourceHandle);
+    if (!jniOcResourceHandle)
+    {
+        return;
+    }
+
+    try
+    {
+        OCStackResult result =
+            OCPlatform::notifyNewAMAvailable(jniOcResourceHandle->getOCResourceHandle());
+
+        if ((OC_STACK_OK != result) && (OC_STACK_NO_OBSERVERS != result))
+        {
+            ThrowOcException(result, "failed to send new AM available notification");
+        }
+    }
+    catch (OCException& e)
+    {
+        LOGE("%s", e.reason().c_str());
+        ThrowOcException(e.code(), e.reason().c_str());
+    }
+}
+
 /*
 * Class:     org_iotivity_base_OcPlatform
 * Method:    constructAccountManagerObject0
index 2440c7c..4fea9bc 100644 (file)
@@ -275,6 +275,22 @@ extern "C" {
     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
         (JNIEnv *, jclass, jobject, jobjectArray);
 
+    /*
+    * Class:     org_iotivity_base_OcPlatform
+    * Method:    bindResourceAM0
+    * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;Z)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResourceAM0
+        (JNIEnv *, jclass, jobject, jobject, jboolean);
+
+    /*
+    * Class:     org_iotivity_base_OcPlatform
+    * Method:    bindResourcesAM0
+    * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;Z)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResourcesAM0
+        (JNIEnv *, jclass, jobject, jobjectArray, jboolean);
+
     /*
     * Class:     org_iotivity_base_OcPlatform
     * Method:    unbindResource0
@@ -299,6 +315,14 @@ extern "C" {
     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
         (JNIEnv *, jclass, jobject, jstring);
 
+    /*
+    * Class:     org_iotivity_base_OcPlatform
+    * Method:    bindRtsMToResource0
+    * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindRtsMToResource0
+        (JNIEnv *, jclass, jobject, jstring);
+
     /*
     * Class:     org_iotivity_base_OcPlatform
     * Method:    bindInterfaceToResource0
@@ -372,6 +396,14 @@ extern "C" {
     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
         (JNIEnv *, jclass, jobject);
 
+    /*
+    * Class:     org_iotivity_base_OcPlatform0
+    * Method:    notifyNewAMAvailable0
+    * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyNewAMAvailable0
+        (JNIEnv *, jclass, jobject);
+
     /*
     * Class:     org_iotivity_base_OcPlatform
     * Method:    constructAccountManagerObject0
index 2ccaf4a..df2d827 100644 (file)
@@ -97,6 +97,15 @@ namespace OC
         return OC_STACK_OK;
     }
 
+    OCStackResult InProcServerWrapper::bindRtsMToResource(const OCResourceHandle& resourceHandle,
+                     const std::string& resourceTypeName)
+    {
+        OC_UNUSED(resourceHandle);
+        OC_UNUSED(resourceTypeName);
+
+        return OC_STACK_OK;
+    }
+
     OCStackResult InProcServerWrapper::bindInterfaceToResource(
                      const OCResourceHandle& resourceHandle,
                      const std::string& resourceInterfaceName)
index c7f480b..74efca6 100644 (file)
@@ -142,6 +142,7 @@ extern "C"
 
 // The Accept Version and Content-Format Version for OCF 1.0.0 (0b0000 1000 0000 0000).
 #define DEFAULT_VERSION_VALUE 2048
+#define MAX_VERSION_VALUE DEFAULT_VERSION_VALUE /**< only one version supported as of Spec v2.0.1 */
 
 /**
  * Option numbers for Signaling messages are specific to the message code.
index faf597c..699746a 100644 (file)
@@ -197,6 +197,24 @@ CAResult_t CAregisterGetCredentialTypesHandler(CAgetCredentialTypesHandler getCr
  */
 CAResult_t CAregisterSslHandshakeCallback(CAHandshakeErrorCallback tlsHandshakeCallback);
 
+/**
+ * Callback to return peer's UUID on SSL session closure
+ *
+ * @param[out] uuid     peer's UUID
+ * @param[out] uuidLen  peer's UUID length
+ *
+ * @return  NONE
+*/
+typedef void (*CAcloseSslConnectionCallback)(const unsigned char *uuid, size_t uuidLen);
+
+/**
+ * Register callback to get the TLS disconnection info
+ * @param[in] tlsHandshakeCallback callback for get tls handshake result
+ * @return ::CA_STATUS_OK
+ */
+CAResult_t CAregisterSslDisconnectCallback(CAcloseSslConnectionCallback tlsDisconnectCallback);
+
+
 /**
  * Register callback to get TLS PSK credentials.
  * @param[in]   getTlsCredentials    GetDTLS Credetials callback.
index 7e951b3..d8d8507 100644 (file)
@@ -4,7 +4,7 @@
 %define DEST_LIB_DIR  %{buildroot}/%{_libdir}
 
 Name: com-oic-ca
-Version:    2.0.0
+Version:    2.0.1
 Release:    0
 Summary: Tizen oicca application
 Group: Network & Connectivity / IoT Connectivity
index 85fc199..140aac1 100644 (file)
@@ -83,6 +83,12 @@ void CAsetCredentialTypesCallback(CAgetCredentialTypesHandler credTypesCallback)
  */
 void CAsetSslCredentialsCallback(CAgetPskCredentialsHandler credCallback);
 
+/**
+ * Register callback that returns peer's UUID on SSL session closure
+ * @param[in] cb callback to return peer's UUID on SSL session closure
+ */
+void CAsetCloseSslConnectionCallback(CAcloseSslConnectionCallback cb);
+
 /**
  * Close the TLS session
  *
index 0dd8a07..0e57be5 100644 (file)
@@ -58,6 +58,8 @@ typedef enum
     CP_INVALID_CERT_INPUT,   /* Certificate input is invalid (or null) */
     CP_DATE_ERROR,           /* Problem setting or reading certificate validity dates */
     CP_BUF_TOO_SMALL,        /* Supplied buffer is not long enough for desired operation */
+    CP_MUL_CA_CERTS,         /* Multiple root CA certs in cert chain */
+    CP_NO_CA_CERT,           /* No root CA cert in cert chain */
     CP_STATUS_FAILED = 255   /* Failure */
 } CertProfileResult;
 
index a57e4d9..987f66d 100644 (file)
@@ -418,6 +418,12 @@ static CAgetPkixInfoHandler g_getPkixInfoCallback = NULL;
  * @brief callback to retrieve acceptable UUID list
  */
 static CAgetIdentityHandler g_getIdentityCallback = NULL;
+/**
+ * @var g_closeSslConnectionCallback
+ *
+ * @brief callback to retrieve UUID on SSL connection closure
+ */
+static CAcloseSslConnectionCallback g_closeSslConnectionCallback = NULL;
 
 /**
  * @var g_dtlsContextMutex
@@ -504,6 +510,13 @@ void CAsetPeerCNVerifyCallback(PeerCNVerifyCallback cb)
     OIC_LOG_V(DEBUG, NET_SSL_TAG, "OUT %s", __func__);
 }
 
+void CAsetCloseSslConnectionCallback(CAcloseSslConnectionCallback closeSslCallback)
+{
+    OIC_LOG_V(DEBUG, NET_SSL_TAG, "In %s", __func__);
+    g_closeSslConnectionCallback = closeSslCallback;
+    OIC_LOG_V(DEBUG, NET_SSL_TAG, "Out %s", __func__);
+}
+
 /**
  * Sets SSL result for callback.
  *
@@ -1275,6 +1288,11 @@ CAResult_t CAcloseSslConnection(const CAEndpoint_t *endpoint)
     }
     while (MBEDTLS_ERR_SSL_WANT_WRITE == ret);
 
+    if (NULL != g_closeSslConnectionCallback)
+    {
+        g_closeSslConnectionCallback(tep->sep.identity.id, tep->sep.identity.id_length);
+    }
+
     RemovePeerFromList(&tep->sep.endpoint);
     oc_mutex_unlock(g_sslContextMutex);
 
@@ -2403,6 +2421,7 @@ CAResult_t CAdecryptSsl(const CASecureEndpoint_t *sep, uint8_t *data, size_t dat
                     char uuid[UUID_STRING_SIZE] = { 0 };
                     const unsigned char * uuidPos = NULL;
                     const unsigned char * userIdPos = NULL;
+                    uint8_t uuid_found = 0;
 
                     uuidPos = (const unsigned char*)memmem(name->val.p, name->val.len,
                                                            UUID_PREFIX, sizeof(UUID_PREFIX) - 1);
@@ -2414,33 +2433,41 @@ CAResult_t CAdecryptSsl(const CASecureEndpoint_t *sep, uint8_t *data, size_t dat
                         (name->val.len >= ((uuidPos - name->val.p) + (sizeof(UUID_PREFIX) - 1) + uuidBufLen)))
                     {
                         memcpy(uuid, uuidPos + sizeof(UUID_PREFIX) - 1, uuidBufLen);
-                        OIC_LOG_V(DEBUG, NET_SSL_TAG, "certificate uuid string: %s", uuid);
-                        ret = (OCConvertStringToUuid(uuid, peer->sep.identity.id)) ? 0 : -1;
-                        if (!checkSslOperation(peer,
-                                               ret,
-                                               "Failed to convert subject",
-                                               MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT))
-                        {
-                            oc_mutex_unlock(g_sslContextMutex);
-                            OIC_LOG_V(DEBUG, NET_SSL_TAG, "Out %s", __func__);
-                            return CA_STATUS_FAILED;
-                        }
+                        OIC_LOG(INFO, NET_SSL_TAG, "uuid tag found");
+                        uuid_found = 1;
                     }
                     else
                     {
-                        OIC_LOG(WARNING, NET_SSL_TAG, "uuid not found");
+                        OIC_LOG(WARNING, NET_SSL_TAG, "uuid tag not found");
                     }
 
+                    userIdPos = (const unsigned char*)memmem(name->val.p, name->val.len,
+                                                             USERID_PREFIX, sizeof(USERID_PREFIX) - 1);
+
                     /* If USERID_PREFIX is present, ensure there's enough data for the prefix plus an entire
                      * UUID, to make sure we don't read past the end of the buffer.
                      */
-                    userIdPos = (const unsigned char*)memmem(name->val.p, name->val.len,
-                                                             USERID_PREFIX, sizeof(USERID_PREFIX) - 1);
                     if ((NULL != userIdPos) &&
                         (name->val.len >= ((userIdPos - name->val.p) + (sizeof(USERID_PREFIX) - 1) + uuidBufLen)))
                     {
                         memcpy(uuid, userIdPos + sizeof(USERID_PREFIX) - 1, uuidBufLen);
-                        ret = (OCConvertStringToUuid(uuid, peer->sep.userId.id)) ? 0 : -1;
+                        OIC_LOG(INFO, NET_SSL_TAG, "userid tag found");
+                        uuid_found = 1;
+                    }
+                    else
+                    {
+                        OIC_LOG(WARNING, NET_SSL_TAG, "userid tag not found");
+                    }
+
+                    if (!uuid_found && name->val.len > sizeof(UUID_PREFIX))
+                    {
+                        memcpy(uuid, name->val.p, name->val.len);
+                        uuid_found = 1;
+                    }
+                    else if (uuid_found)
+                    {
+                        OIC_LOG_V(DEBUG, NET_SSL_TAG, "certificate uuid string: %s", uuid);
+                        ret = (OCConvertStringToUuid(uuid, peer->sep.identity.id)) ? 0 : -1;
                         if (!checkSslOperation(peer,
                                                ret,
                                                "Failed to convert subject alt name",
@@ -2453,7 +2480,7 @@ CAResult_t CAdecryptSsl(const CASecureEndpoint_t *sep, uint8_t *data, size_t dat
                     }
                     else
                     {
-                        OIC_LOG(WARNING, NET_SSL_TAG, "Subject alternative name not found");
+                        OIC_LOG(WARNING, NET_SSL_TAG, "neither uuid nor userid not found");
                     }
                 }
             }
@@ -2485,6 +2512,12 @@ CAResult_t CAdecryptSsl(const CASecureEndpoint_t *sep, uint8_t *data, size_t dat
              MBEDTLS_SSL_ALERT_MSG_CLOSE_NOTIFY == peer->ssl.in_msg[1]))
         {
             OIC_LOG(INFO, NET_SSL_TAG, "Connection was closed gracefully");
+
+            if (NULL != g_closeSslConnectionCallback)
+            {
+                g_closeSslConnectionCallback(peer->sep.identity.id, peer->sep.identity.id_length);
+            }
+
             RemovePeerFromList(&peer->sep.endpoint);
             oc_mutex_unlock(g_sslContextMutex);
             return CA_STATUS_OK;
index 305afdf..bff4612 100644 (file)
@@ -99,6 +99,42 @@ static CertProfileResult FindEndEntityCert(const mbedtls_x509_crt *certChain, mb
     return CP_STATUS_OK;
 }
 
+static CertProfileResult FindRootCACert(const mbedtls_x509_crt *certChain, mbedtls_x509_crt const **caCert)
+{
+    *caCert = NULL;
+
+    const mbedtls_x509_crt* curCert = certChain;
+    while (NULL != curCert)
+    {
+        if ((1 == curCert->ca_istrue) &&
+            (curCert->issuer_raw.len == curCert->subject_raw.len) &&
+            (0 == memcmp(curCert->issuer_raw.p, curCert->subject_raw.p, curCert->issuer_raw.len)))
+        {
+            // first CA
+            if (NULL == *caCert)
+            {
+                *caCert = curCert;
+            }
+            // more than 1 CA
+            else
+            {
+                *caCert = NULL;
+                OIC_LOG(ERROR, TAG, "More than 1 root CA cert in chain");
+                return CP_MUL_CA_CERTS;
+            }
+        }
+        curCert = curCert->next;
+    }
+
+    if (NULL == *caCert)
+    {
+        OIC_LOG(INFO, TAG, "No root CA cert in chain");
+        return CP_NO_CA_CERT;
+    }
+
+    return CP_STATUS_OK;
+}
+
 static CertProfileResult CheckMdAlgorithm(const mbedtls_x509_crt_profile *profile, mbedtls_md_type_t mdAlgorithm)
 {
     if ((MBEDTLS_X509_ID_FLAG(mdAlgorithm) & profile->allowed_mds) != 0)
@@ -198,7 +234,7 @@ CertProfileViolations ValidateEndEntityCertProfile(const mbedtls_x509_crt *cert)
 {
 
     // OCF requirements exist for the following extensions, but w/o mbedTLS support
-    // * check for certificate policies, if present must be 1.3.6.1.4.1.51414.0.1.1
+    // * check for certificate policies, if present must be 1.3.6.1.4.1.51414.0.1.2
     // * cRL Distribution Points
 
     if (NULL == cert)
@@ -412,6 +448,9 @@ int ValidateAuthCertChainProfiles(const mbedtls_x509_crt *certChain)
         return CP_INVALID_CERT_CHAIN;
     }
 
+    const mbedtls_x509_crt* caCert = NULL;
+    cpResult = FindRootCACert(certChain, &caCert);
+
     const mbedtls_x509_crt* curCert = certChain;
     while (NULL != curCert)
     {
@@ -419,6 +458,10 @@ int ValidateAuthCertChainProfiles(const mbedtls_x509_crt *certChain)
         {
             profileViolations = ValidateEndEntityCertProfile(curCert);
         }
+        else if (curCert == caCert)
+        {
+            profileViolations = ValidateRootCACertProfile(curCert);
+        }
         else
         {
             profileViolations = ValidateIntermediateCACertProfile(curCert);
index 8660791..de731e5 100644 (file)
@@ -203,6 +203,19 @@ CAResult_t CAregisterSslHandshakeCallback(CAHandshakeErrorCallback tlsHandshakeC
     return CA_STATUS_OK;
 }
 
+CAResult_t CAregisterSslDisconnectCallback(CAcloseSslConnectionCallback tlsDisconnectCallback)
+{
+    OIC_LOG(DEBUG, TAG, "CAregisterSslDisconnectCallback");
+
+    if(!g_isInitialized)
+    {
+        return CA_STATUS_NOT_INITIALIZED;
+    }
+
+    CAsetCloseSslConnectionCallback(tlsDisconnectCallback);
+    return CA_STATUS_OK;
+}
+
 CAResult_t CAregisterPskCredentialsHandler(CAgetPskCredentialsHandler getTlsCredentialsHandler)
 {
     OIC_LOG_V(DEBUG, TAG, "In %s", __func__);
index 650fd09..7a7c2d0 100644 (file)
@@ -119,6 +119,8 @@ coap_pdu_t *CAGeneratePDU(uint32_t code, const CAInfo_t *info, const CAEndpoint_
     VERIFY_NON_NULL_RET(endpoint, TAG, "endpoint", NULL);
     VERIFY_NON_NULL_RET(optlist, TAG, "optlist", NULL);
 
+    OIC_LOG_V(DEBUG, TAG, "%s: IN", __func__);
+
     OIC_LOG_V(DEBUG, TAG, "generate pdu for [%d]adapter, [%d]flags",
               endpoint->adapter, endpoint->flags);
 
@@ -195,6 +197,8 @@ coap_pdu_t *CAGeneratePDU(uint32_t code, const CAInfo_t *info, const CAEndpoint_
         }
     }
 
+    OIC_LOG_V(DEBUG, TAG, "%s: OUT", __func__);
+
     // pdu print method : coap_show_pdu(pdu);
     return pdu;
 }
@@ -551,6 +555,7 @@ CAResult_t CAParseHeadOption(uint32_t code, const CAInfo_t *info, coap_list_t **
 {
     (void)code;
     VERIFY_NON_NULL_RET(info, TAG, "info", CA_STATUS_INVALID_PARAM);
+    OIC_LOG_V(DEBUG, TAG, "%s: IN", __func__);
 
     OIC_LOG_V(DEBUG, TAG, "parse Head Opt: %d", info->numOptions);
 
@@ -598,14 +603,31 @@ CAResult_t CAParseHeadOption(uint32_t code, const CAInfo_t *info, coap_list_t **
     // insert one extra header with the payload format if applicable.
     if (CA_FORMAT_UNDEFINED != info->payloadFormat)
     {
-        CAParsePayloadFormatHeadOption(COAP_OPTION_CONTENT_FORMAT, info->payloadFormat, CA_OPTION_CONTENT_VERSION, info->payloadVersion, optlist);
+        OIC_LOG_V(DEBUG, TAG, "%s: info->payloadFormat = %d; info->payloadVersion = %d", __func__, info->payloadFormat, info->payloadVersion);
+        // IoTivity should not send a message with an OCF-Content-Format-Version greater than 1.0.0, per Spec v2.0.1
+        uint16_t contentFormatVersion = info->payloadVersion;
+        if(MAX_VERSION_VALUE < contentFormatVersion)
+        {
+            contentFormatVersion = MAX_VERSION_VALUE;
+        }
+        OIC_LOG_V(DEBUG, TAG, "%s: set contentFormatVersion = %d", __func__, contentFormatVersion);
+        CAParsePayloadFormatHeadOption(COAP_OPTION_CONTENT_FORMAT, info->payloadFormat, CA_OPTION_CONTENT_VERSION, contentFormatVersion, optlist);
     }
-
     if (CA_FORMAT_UNDEFINED != info->acceptFormat)
     {
-        CAParsePayloadFormatHeadOption(COAP_OPTION_ACCEPT, info->acceptFormat, CA_OPTION_ACCEPT_VERSION, info->acceptVersion, optlist);
+        OIC_LOG_V(DEBUG, TAG, "%s: info->acceptVersion = %d", __func__, info->acceptVersion);
+        // IoTivity should not send a message with an OCF-Content-Format-Accept-Version greater than 1.0.0, per Spec v2.0.1
+        uint16_t contentFormatAcceptVersion = info->acceptVersion;
+        if(MAX_VERSION_VALUE < contentFormatAcceptVersion)
+        {
+            contentFormatAcceptVersion = MAX_VERSION_VALUE;
+        }
+        OIC_LOG_V(DEBUG, TAG, "%s: set contentFormatAcceptVersion = %d", __func__, contentFormatAcceptVersion);
+        CAParsePayloadFormatHeadOption(COAP_OPTION_ACCEPT, info->acceptFormat, CA_OPTION_ACCEPT_VERSION, contentFormatAcceptVersion, optlist);
     }
 
+    OIC_LOG_V(DEBUG, TAG, "%s: OUT", __func__);
+
     return CA_STATUS_OK;
 }
 
@@ -617,6 +639,8 @@ CAResult_t CAParsePayloadFormatHeadOption(uint16_t formatOption, CAPayloadFormat
     uint8_t encodeBuf[CA_ENCODE_BUFFER_SIZE] = { 0 };
     uint8_t versionBuf[CA_ENCODE_BUFFER_SIZE] = { 0 };
 
+    OIC_LOG_V(DEBUG, TAG, "%s: IN", __func__);
+
     switch (format)
     {
         case CA_FORMAT_APPLICATION_CBOR:
@@ -668,6 +692,7 @@ CAResult_t CAParsePayloadFormatHeadOption(uint16_t formatOption, CAPayloadFormat
             return CA_STATUS_INVALID_PARAM;
         }
     }
+    OIC_LOG_V(DEBUG, TAG, "%s: OUT", __func__);
     return CA_STATUS_OK;
 }
 
@@ -1131,6 +1156,7 @@ CAResult_t CAGetInfoFromPDU(const coap_pdu_t *pdu, const CAEndpoint_t *endpoint,
 
 exit:
     OIC_LOG(ERROR, TAG, "buffer too small");
+    OIC_LOG_V(ERROR, TAG, "%s: ERROR EXIT", __func__);
     OICFree(outInfo->options);
     OICFree(optionResult);
     return CA_STATUS_FAILED;
index e3a83ac..0376218 100644 (file)
@@ -107,35 +107,35 @@ static const OCByteString s_ekuAnyOid = { s_ekuAnyOidBytes, sizeof(s_ekuAnyOidBy
 static const char s_ComplianceExtOid[] = MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_DOD "\x01\x04\x01\x83\x91\x56\x01\x00"; // 1.3.6.1.4.1.51414.1.0
 static const uint8_t s_ComplianceExtBytes[] = {
 
-  0x30, 0x81, 0x8C, // compliance extension sequence
+  0x30, 0x81, 0x94, // compliance extension sequence
 
   0x30, 0x09, // version sequence (9 bytes)
   0x02, 0x01, 0x02, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, // [2, 0, 0]
 
-  0x30, 0x64, // security profile sequence (100 bytes)
+  0x30, 0x6C, // security profile sequence (108 bytes)
 
-    0x0C, 0x17, // utf8_string, 23 bytes long, '1.3.6.1.4.1.51414.0.1.0' (baseline)
+    0x0C, 0x19, // utf8_string, 25 bytes long, '1.3.6.1.4.1.51414.0.0.1.0' (baseline)
     0x31, 0x2E, 0x33, 0x2E, 0x36, 0x2E, 0x31, 0x2E, 0x34, 0x2E,
-    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x31, 0x2E, 0x30,
+    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x31, 0x2E, 0x30,
 
-    0x0C, 0x17, // utf8_string, 23 bytes long, '1.3.6.1.4.1.51414.0.2.0' (black)
+    0x0C, 0x19, // utf8_string, 25 bytes long, '1.3.6.1.4.1.51414.0.0.2.0' (black)
     0x31, 0x2E, 0x33, 0x2E, 0x36, 0x2E, 0x31, 0x2E, 0x34, 0x2E,
-    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x32, 0x2E, 0x30,
+    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x32, 0x2E, 0x30,
 
-    0x0C, 0x17, // utf8_string, 23 bytes long, '1.3.6.1.4.1.51414.0.3.0' (blue)
+    0x0C, 0x19, // utf8_string, 25 bytes long, '1.3.6.1.4.1.51414.0.0.3.0' (blue)
     0x31, 0x2E, 0x33, 0x2E, 0x36, 0x2E, 0x31, 0x2E, 0x34, 0x2E,
-    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x33, 0x2E, 0x30,
+    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x33, 0x2E, 0x30,
 
-    0x0C, 0x17, // utf8_string, 23 bytes long, '1.3.6.1.4.1.51414.0.4.0' (purple)
+    0x0C, 0x19, // utf8_string, 25 bytes long, '1.3.6.1.4.1.51414.0.0.4.0' (purple)
     0x31, 0x2E, 0x33, 0x2E, 0x36, 0x2E, 0x31, 0x2E, 0x34, 0x2E,
-    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x34, 0x2E, 0x30,
+    0x31, 0x2E, 0x35, 0x31, 0x34, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x34, 0x2E, 0x30,
 
-    0x0C, 0x0F, // urf8_string 15 bytes long (device name)
-    0x49, 0x6F, 0x54, 0x69, 0x76, 0x69, 0x74, 0x79, 0x20, 0x53, // 'IoTivity Server'
-    0x65, 0x72, 0x76, 0x65, 0x72,
+  0x0C, 0x0F, // urf8_string 15 bytes long (device name)
+  0x49, 0x6F, 0x54, 0x69, 0x76, 0x69, 0x74, 0x79, 0x20, 0x53, // 'IoTivity Server'
+  0x65, 0x72, 0x76, 0x65, 0x72,
 
-    0x0C, 0x08, // urf8_string 8 bytes long (device manufacturer)
-    0x49, 0x6F, 0x54, 0x69, 0x76, 0x69, 0x74, 0x79 // 'IoTivity'
+  0x0C, 0x08, // urf8_string 8 bytes long (device manufacturer)
+  0x49, 0x6F, 0x54, 0x69, 0x76, 0x69, 0x74, 0x79 // 'IoTivity'
 };
 
 
index 2c09541..029574e 100644 (file)
@@ -49,6 +49,7 @@
 #define SetCASecureEndpointAttribute SetCASecureEndpointAttributeTest
 #define GetCASecureEndpointAttributes GetCASecureEndpointAttributesTest
 #define CAsetPeerCNVerifyCallback CAsetPeerCNVerifyCallbackTest
+#define CAsetCloseSslConnectionCallback CAsetCloseSslConnectionCallbackTest
 
 #include "../src/adapter_util/ca_adapter_net_ssl.c"
 
index f632d0f..3cca42d 100644 (file)
@@ -48,7 +48,7 @@ extern "C" {
 //-----------------------------------------------------------------------------
 
 /** Version of IoTivity. */
-#define IOTIVITY_VERSION                      "2.0.0"
+#define IOTIVITY_VERSION                      "2.0.1"
 
 /**
  * OIC Virtual resources supported by every OIC device.
@@ -65,6 +65,9 @@ extern "C" {
 /** Platform URI.*/
 #define OC_RSRVD_PLATFORM_URI                 "/oic/p"
 
+/** Maintenance URI.*/
+#define OC_RSRVD_MAINTENANCE_URI              "/oic/mnt"
+
 /** Resource Type.*/
 #define OC_RSRVD_RESOURCE_TYPES_URI           "/oic/res/types/d"
 
@@ -168,6 +171,9 @@ extern "C" {
 /** To represent resource type with collection.*/
 #define OC_RSRVD_RESOURCE_TYPE_COLLECTION "oic.wk.col"
 
+/** To represent resource type with atomic measurement.*/
+#define OC_RSRVD_RESOURCE_TYPE_AM "oic.wk.atomicmeasurement"
+
 /** To represent resource type with RES.*/
 #define OC_RSRVD_RESOURCE_TYPE_RES      "oic.wk.res"
 
@@ -444,6 +450,9 @@ extern "C" {
 /** Allowable resource types in the links. */
 #define OC_RSRVD_RTS                     "rts"
 
+/** Mandatory resource types in the links [shall be a subset of rts]. */
+#define OC_RSRVD_RTSM                    "rts-m"
+
 /** Default relationship. */
 #define OC_RSRVD_DREL                    "drel"
 
index 83d588d..4e32acb 100644 (file)
@@ -29,7 +29,7 @@ libocsrm_env = env.Clone()
 target_os = libocsrm_env.get('TARGET_OS')
 
 if target_os not in ['msys_nt', 'windows']:
-    if env.get('WITH_TCP') == True and env.get('WITH_CLOUD') == True:
+    if env.get('WITH_TCP') == True and env.get('WITH_CLOUD') == True and env.get('SECURED') == '1':
         env.PrependUnique(LIBS=['cloud'])
 
 ######################################################################
index 5a67cf9..8a0664d 100644 (file)
@@ -411,6 +411,15 @@ struct OicUuid
     uint8_t             id[UUID_LENGTH];
 };
 
+
+#ifndef OC_ZERO_UUID
+#   if (__STDC_VERSION__ >= 199901L)
+#       define OC_ZERO_UUID {.id={0}}
+#   else
+#       define OC_ZERO_UUID {{0}}
+#   endif
+#endif
+
 /**
  * /oic/sec/jwk (JSON Web Key) data type.
  * See JSON Web Key (JWK)  draft-ietf-jose-json-web-key-41
@@ -426,6 +435,14 @@ struct OicSecKey
 
 };
 
+#ifndef OC_INIT_SEC_KEY
+#   if (__STDC_VERSION__ >= 199901L)
+#       define OC_INIT_SEC_KEY(_data, _len, _encoding) {.data=(_data), .len=(_len), .encoding=(_encoding)}
+#   else
+#       define OC_INIT_SEC_KEY(_data, _len, _encoding) {(_data), (_len), (_encoding)}
+#   endif
+#endif
+
 struct OicSecOpt
 {
     uint8_t                *data;
index f2a4cea..1bc7487 100644 (file)
 #ifndef IOTVT_SRM_CERTHELPERS_H_
 #define IOTVT_SRM_CERTHELPERS_H_
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #if defined(__WITH_TLS__) || defined(__WITH_DTLS__)
 
 #include <mbedtls/pk.h>
@@ -125,4 +129,8 @@ OCStackResult OCInternalVerifyRoleCertificate(const OicSecKey_t *certificateChai
                                               const ByteArrayLL_t *trustedCaCerts,
                                               OicSecRole_t **roles, size_t *rolesLength,
                                               struct tm *notValidAfter);
+
+#ifdef __cplusplus
+}
+#endif
 #endif
index 9d78bea..b5501b6 100644 (file)
@@ -210,7 +210,7 @@ int32_t GetDtlsPskCredentials( CADtlsPskCredType_t type,
               unsigned char *result, size_t result_length);
 
 /*
- * This internal callback is used to retrieve UUIDs from CRED 
+ * This internal callback is used to retrieve UUIDs from CRED
  * entries that have matching publicData.
  *
  * @param ctx context holding UUID list
@@ -344,4 +344,12 @@ void FreeCred(OicSecCred_t *cred);
  */
 bool IsCredRowneruuidTheNilUuid();
 
+#ifndef OC_CBOR_VALUE_INIT
+#   if (__STDC_VERSION__ >= 199901L)
+#       define OC_CBOR_VALUE_INIT {.parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0}
+#   else
+#       define OC_CBOR_VALUE_INIT {NULL, NULL, 0, 0, 0, 0}
+#   endif
+#endif
+
 #endif //IOTVT_SRM_CREDR_H
index 4ba6390..f5164c2 100644 (file)
@@ -36,15 +36,6 @@ extern "C" {
  */
 OCStackResult UpdateCRLResource(OicSecCrl_t *crl);
 
-/**
- * This function get encoded with base64 CRL from SRM.
- *
- * @note Caller responsible for resulting string memory (use OICFree to remove it).
- *
- * @return NULL if error occured (e.g. CRL did not set).
- */
-uint8_t* GetCrl(void);
-
 /**
  * This function get encoded with DER CRL from SRM.
  *
index 78a3927..c2522a3 100644 (file)
@@ -110,6 +110,16 @@ OCStackResult RolesToCBORPayload(const RoleCertChain_t *roles, uint8_t **cborPay
  */
 void FreeRoleCertChainList(RoleCertChain_t *roleCertList);
 
+/**
+ * Callback to delete all roles on TLS session closure
+ *
+ * @param[out] uuid     peer's UUID
+ * @param[out] uuidLen  peer's UUID length
+ *
+ * @return  NONE
+*/
+void DeleteRolesCB(const unsigned char *uuid, size_t uuidLen);
+
 #ifdef __cplusplus
 }
 #endif
index 474b813..d0af1c3 100644 (file)
@@ -35,7 +35,9 @@ extern "C"
 #ifdef __cplusplus
 extern "C" {
 #endif // __cplusplus
-
+#if defined (__WITH_TLS__) || defined(__WITH_DTLS__)
+#include "mbedtls/error.h"
+#endif
 typedef struct OicParseQueryIter OicParseQueryIter_t;
 
 /**
@@ -110,7 +112,7 @@ struct OicParseQueryIter
 #define VERIFY_NOT_NULL_RETURN(tag, arg, logLevel, retValue) do { if (NULL == (arg)) \
             { OIC_LOG((logLevel), tag, #arg " is NULL"); return retValue; } } while(0)
 #endif
-
+#if defined (__WITH_TLS__) || defined(__WITH_DTLS__)
 /**
  * Macro to log an mbedtls error
  * For mbedtls functions that return 0 as non-error
@@ -120,6 +122,31 @@ struct OicParseQueryIter
     mbedtls_strerror((ret), (buf), (bufSize));                               \
     OIC_LOG_V((logLevel), (tag), "mbedtls error:  %s", (buf)); } }while(0)
 
+#define LOG_MBEDTLS_ERROR(ret) do{ \
+    if (0!=(ret)) {\
+    char *_buf = (char*)OICCalloc(2048, 1);\
+    if (_buf)\
+    {\
+        mbedtls_strerror((ret), _buf, 2048);                           \
+        OIC_LOG_V(ERROR, TAG, "mbedtls error:  %s", _buf); \
+        OICFree(_buf);\
+    }\
+    } }while(0)
+
+#define LOG_MBEDTLS_VERIFY_ERROR(flags) do{ \
+    if (0!=(flags)) {                       \
+    char *_buf = (char*)OICCalloc(2048, 1);  \
+    if (_buf)                                \
+    {                                       \
+        mbedtls_x509_crt_verify_info(_buf, 2048, "", flags); \
+        OIC_LOG_V(ERROR, TAG, "mbedtls verify error:  %s", _buf); \
+        OICFree(_buf);                       \
+    }                                       \
+    } }while(0)
+
+
+#endif //(__WITH_TLS__) || defined(__WITH_DTLS__)
+
 /**
  * This method initializes the @ref OicParseQueryIter_t struct.
  *
@@ -216,6 +243,22 @@ bool IsNilUuid(const OicUuid_t *uuid);
 OCStackResult OC_CALL SetDeviceIdSeed(const uint8_t* seed, size_t seedSize);
 #endif
 
+/**
+ * cbor default init
+ */
+#define OC_DEFAULT_CBOR_VALUE {.parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0}
+
+#define OC_DEFAULT_CBOR_PARSER {.end = NULL, .flags = 0}
+
+#define OC_DEFAULT_OICPARSEQUWRYITER \
+{ \
+    .attrPos = NULL,\
+    .attrLen = 0,\
+    .valPos = NULL,\
+    .valLen = 0,\
+    .pi = {.n=0,.separator=NULL,.delim=NULL,.dlen=0,.pos=NULL,.segment_length=0}\
+}
+
 /**
  * Is the URI for a Security Virtual Resource as defined
  * by Security Specification.