Skip to content
Snippets Groups Projects
Commit 674b1b76 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Correction of:

- g_CSE_DMR_CRE_BV_015 - no need for response to be returned
- f_CSE_DMR_CRE_BV_015 - handling of creator attribute -> assigning a right value (AE-ID or CSE-ID)

Signed-off-by: Miguel Angel Reina Ortega's avatarreinaortega <miguelangel.reinaortega@etsi.org>
parent 36aa60a9
No related branches found
No related tags found
1 merge request!25Ae fixes
......@@ -7,7 +7,7 @@
*
* @author oneM2M
* @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
* $Id: OneM2M_Functions.ttcn 263 2017-05-16 10:09:27Z reinaortega $
* $Id: OneM2M_Functions.ttcn 277 2017-05-18 04:51:46Z reinaortega $
* @desc Module containing functions for oneM2M
*
*/
......@@ -1100,18 +1100,20 @@ module OneM2M_Functions {
}
if (p_resourceType == int23) {//subscription
//notificationURI
if(match(valueof(p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI), v_defaultListOfURIs )){
p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(p_parentIndex)};
}
/*if(PX_FROM_IS_AE_ID) {
if(PX_UNSTRUCTURED){
p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {vc_aeAux.aE_ID};
} else {
p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {PX_CSE_ID & "/" & vc_aeAux.aE_ID};
}
} else {
p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {"/" & PX_CSE_NAME & "/" & PX_AEAUX_NAME};//c_aeAuxName
}*/
//creator attribute
if(ispresent(p_request.primitiveContent.any_1[0].Subscription_optional.creator)) {
p_request.primitiveContent.any_1[0].Subscription_optional.creator := f_getCreator(p_parentIndex);
}
}
if (p_resourceType == int4) {//contentInstance
//creator attribute
if(ispresent(p_request.primitiveContent.any_1[0].ContentInstance_optional.creator)) {
p_request.primitiveContent.any_1[0].ContentInstance_optional.creator := f_getCreator(p_parentIndex);
}
}
return valueof(p_request);
......@@ -1304,6 +1306,26 @@ module OneM2M_Functions {
return PX_SUPER_USER;
}
}
/**
* @desc Resolution of the creator attribute for a given resource
* @param p_targetResourceIndex Internal resource index of the given resource
* @return AE-ID or CSE-ID of the entity creating the given resource
* @verdict
*/
function f_getCreator(integer p_targetResourceIndex := -1) runs on CseTester return XSD.ID {
if(p_targetResourceIndex == -1) {
return PX_CSE_ID;
}
if(ischosen(vc_resourcesList[p_targetResourceIndex].resource.any_1[0].AE_optional)) {
return vc_resourcesList[p_targetResourceIndex].resource.any_1[0].AE_optional.aE_ID;
} else {
return f_getCreator(vc_resourcesList[p_targetResourceIndex].parentIndex);
}
}
/**
* @desc Return of a index of a specific attribute from an attributeList by attributeName
......
......@@ -7,7 +7,7 @@
*
* @author oneM2M
* @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
* $Id: OneM2M_Testcases.ttcn 276 2017-05-18 01:31:08Z reinaortega $
* $Id: OneM2M_Testcases.ttcn 277 2017-05-18 04:51:46Z reinaortega $
* @desc Module containing test cases for oneM2M
*
*/
......@@ -2598,374 +2598,341 @@ module OneM2M_Testcases {
testcase TC_CSE_DMR_CRE_BV_015_01() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createContainerBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"accessControlPolicyIDs", omit};
v_createRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {"NotInitialized"};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_02() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createContainerBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"expirationTime", omit};
v_createRequest.primitiveContent.any_1[0].Container_optional.expirationTime := "20301231T012345";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_03() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createContainerBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"labels", omit};
v_createRequest.primitiveContent.any_1[0].Container_optional.labels := {"MyLabel"};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_04() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createContainerBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"maxNrOfInstances", omit};
v_createRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := 0;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_05() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createContainerBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"maxByteSize", omit};
v_createRequest.primitiveContent.any_1[0].Container_optional.maxByteSize := 0;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_06() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createContainerBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"maxInstanceAge", omit};
v_createRequest.primitiveContent.any_1[0].Container_optional.maxInstanceAge := 0;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_07() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createContainerBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"ontologyRef", omit};
v_createRequest.primitiveContent.any_1[0].Container_optional.ontologyRef := "MyOntologyRef";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_08() runs on CseTester system CseSystem {//TODO
// Local variables
var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"expirationTime", omit};
v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.expirationTime := "20301231T012345";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_09() runs on CseTester system CseSystem {//TODO
// Local variables
var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"labels", omit};
v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.labels := {"MyLabel"};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_10() runs on CseTester system CseSystem {//TODO
// Local variables
var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"creator", omit};
v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.creator := "MyCreator";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_11() runs on CseTester system CseSystem {//TODO
// Local variables
var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"contentInfo", omit};
v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.contentInfo := "MyContentInfo";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_12() runs on CseTester system CseSystem {//TODO
// Local variables
var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"ontologyRef", omit};
v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.ontologyRef := "MyOntologyRef";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_13() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createAcpBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"expirationTime", omit};
v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.expirationTime := "20301231T012345";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_14() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createAcpBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"labels", omit};
v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := {"MyLabel"};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_15() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"accessControlPolicyIDs", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.accessControlPolicyIDs := {"NotInitialized"};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_16() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"expirationTime", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.expirationTime := "20301231T012345";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_17() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"labels", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.labels := {"MyLabel"};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_18() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"eventNotificationCriteria", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.eventNotificationCriteria := valueof(m_eventNotificationCriteria({int1}, -));
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_19() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"expirationCounter", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.expirationCounter := 1;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_20() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"groupID", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.groupID := "MyGroupID";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_21() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"notificationForwardingURI", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationForwardingURI := "MyForwardingURI";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_22() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"batchNotify", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.batchNotify := {0, "PT1S"};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_23() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"rateLimit", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.rateLimit := {0, omit};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_24() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"preSubscriptionNotify", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.preSubscriptionNotify := 1;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_25() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"pendingNotification", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.pendingNotification := int1;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_26() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"notificationStoragePriority", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationStoragePriority := 1;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_27() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"latestNotify", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.latestNotify := true;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_28() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"notificationContentType", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationContentType := int1;
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_29() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"notificationEventCat", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationEventCat := {alt_1 := 100};
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_30() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"creator", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.creator := "MyCreator";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
testcase TC_CSE_DMR_CRE_BV_015_31() runs on CseTester system CseSystem {
// Local variables
var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
var ResponsePrimitive v_responsePrimitive;
const AttributeAux c_optionalAttribute := {"subscriberURI", omit};
v_createRequest.primitiveContent.any_1[0].Subscription_optional.subscriberURI := "MySubscriberURI";
v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute);
}
function f_CSE_DMR_CRE_BV_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeAux p_optionalAttribute) runs on CseTester return ResponsePrimitive {
function f_CSE_DMR_CRE_BV_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeAux p_optionalAttribute) runs on CseTester {
// Local variables
var MsgIn v_response;
......@@ -3015,7 +2982,7 @@ module OneM2M_Testcases {
setverdict(fail, testcasename() & ": Rejected creation of resource type " & int2str(enum2int(p_resourceType)) & " containing attribute" & p_optionalAttribute.name);
}
[] tc_ac.timeout {
setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
setverdict(fail, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
}
}
......@@ -3024,10 +2991,7 @@ module OneM2M_Testcases {
// Tear down
f_cf01Down();
return v_response.primitive.responsePrimitive;
}//end f_CSE_DMR_CRE_BV_015
}// end group g_CSE_DMR_CRE_BV_015
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment