1: %% 2: %% %CopyrightBegin% 3: %% 4: %% Copyright Ericsson AB 1997-2011. All Rights Reserved. 5: %% 6: %% The contents of this file are subject to the Erlang Public License, 7: %% Version 1.1, (the "License"); you may not use this file except in 8: %% compliance with the License. You should have received a copy of the 9: %% Erlang Public License along with this software. If not, it can be 10: %% retrieved online at http://www.erlang.org/. 11: %% 12: %% Software distributed under the License is distributed on an "AS IS" 13: %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 14: %% the License for the specific language governing rights and limitations 15: %% under the License. 16: %% 17: %% %CopyrightEnd% 18: %% 19: %% 20: %%----------------------------------------------------------------- 21: %% 22: %% Description: 23: %% Test suite for the Names Library module 24: %% 25: %%----------------------------------------------------------------- 26: -module(lname_SUITE). 27: 28: -include_lib("test_server/include/test_server.hrl"). 29: -include_lib("orber/COSS/CosNaming/CosNaming.hrl"). 30: -include_lib("orber/COSS/CosNaming/lname.hrl"). 31: 32: -define(default_timeout, ?t:minutes(3)). 33: 34: %%----------------------------------------------------------------- 35: %% External exports 36: %%----------------------------------------------------------------- 37: -export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, 38: init_per_group/2,end_per_group/2]). 39: 40: %%----------------------------------------------------------------- 41: %% Internal exports 42: %%----------------------------------------------------------------- 43: -export([]). 44: -compile(export_all). 45: 46: %%----------------------------------------------------------------- 47: %% Func: all/1 48: %% Args: 49: %% Returns: 50: %%----------------------------------------------------------------- 51: suite() -> [{ct_hooks,[ts_install_cth]}]. 52: 53: all() -> 54: [lname_component, lname]. 55: 56: groups() -> 57: []. 58: 59: init_per_suite(Config) -> 60: Config. 61: 62: end_per_suite(_Config) -> 63: ok. 64: 65: init_per_group(_GroupName, Config) -> 66: Config. 67: 68: end_per_group(_GroupName, Config) -> 69: Config. 70: 71: 72: %%----------------------------------------------------------------- 73: %% Init and cleanup functions. 74: %%----------------------------------------------------------------- 75: 76: init_per_testcase(_Case, Config) -> 77: ?line Dog=test_server:timetrap(?default_timeout), 78: [{watchdog, Dog}|Config]. 79: 80: 81: end_per_testcase(_Case, Config) -> 82: Dog = ?config(watchdog, Config), 83: test_server:timetrap_cancel(Dog), 84: ok. 85: 86: 87: %%----------------------------------------------------------------- 88: %% Test Case: name component handling tests 89: %% Description: 90: %%----------------------------------------------------------------- 91: lname_component(doc) -> ["Description", "more description"]; 92: lname_component(suite) -> []; 93: lname_component(_) -> 94: create_test(), 95: get_tests(), 96: set_tests(). 97: 98: create_test() -> 99: ?line #'CosNaming_NameComponent'{} = lname_component:create(), 100: ok. 101: 102: get_tests() -> 103: NC = #'CosNaming_NameComponent'{id="first", kind="apple"}, 104: NC1 = #'CosNaming_NameComponent'{id="", kind="apple"}, 105: NC2 = #'CosNaming_NameComponent'{id="first", kind=""}, 106: ?line "first" = lname_component:get_id(NC), 107: ?line "apple" = lname_component:get_kind(NC), 108: ?line {'EXCEPTION', #'LNameComponent_NotSet'{}} = 109: (catch lname_component:get_id(NC1)), 110: ?line {'EXCEPTION', #'LNameComponent_NotSet'{}} = 111: (catch lname_component:get_kind(NC2)), 112: ok. 113: 114: set_tests() -> 115: NC = #'CosNaming_NameComponent'{id="first", kind="apple"}, 116: ?line #'CosNaming_NameComponent'{id="second", kind="apple"} = 117: lname_component:set_id(NC, "second"), 118: ?line #'CosNaming_NameComponent'{id="first", kind="pear"} = 119: lname_component:set_kind(NC, "pear"), 120: ok. 121: 122: %%----------------------------------------------------------------- 123: %% Test Case: name handling tests 124: %% Description: 125: %%----------------------------------------------------------------- 126: lname(doc) -> ["Description", "more description"]; 127: lname(suite) -> []; 128: lname(_) -> 129: Name = [#'CosNaming_NameComponent'{id="first", kind="apple"}, 130: #'CosNaming_NameComponent'{id="last", kind="peach"}, 131: #'CosNaming_NameComponent'{id="and", kind="plum"}, 132: #'CosNaming_NameComponent'{id="always", kind="orange"}], 133: insert_tests(Name), 134: get_tests(Name), 135: delete_tests(Name), 136: comparision_tests(Name), 137: convertion_tests(Name). 138: 139: insert_tests(Name) -> 140: NC = #'CosNaming_NameComponent'{id="new", kind="pear"}, 141: ?line [NC, #'CosNaming_NameComponent'{id="first", kind="apple"}, 142: #'CosNaming_NameComponent'{id="last", kind="peach"}, 143: #'CosNaming_NameComponent'{id="and", kind="plum"}, 144: #'CosNaming_NameComponent'{id="always", kind="orange"}] = 145: lname:insert_component(Name, 1, NC), 146: ?line [#'CosNaming_NameComponent'{id="first", kind="apple"}, 147: #'CosNaming_NameComponent'{id="last", kind="peach"}, 148: #'CosNaming_NameComponent'{id="and", kind="plum"}, 149: #'CosNaming_NameComponent'{id="always", kind="orange"}, NC] = 150: lname:insert_component(Name, 5, NC), 151: ?line [#'CosNaming_NameComponent'{id="first", kind="apple"}, 152: #'CosNaming_NameComponent'{id="last", kind="peach"}, 153: #'CosNaming_NameComponent'{id="and", kind="plum"}, NC, 154: #'CosNaming_NameComponent'{id="always", kind="orange"}] = 155: lname:insert_component(Name, 4, NC), 156: ?line [#'CosNaming_NameComponent'{id="first", kind="apple"}, 157: #'CosNaming_NameComponent'{id="last", kind="peach"}, NC, 158: #'CosNaming_NameComponent'{id="and", kind="plum"}, 159: #'CosNaming_NameComponent'{id="always", kind="orange"}] = 160: lname:insert_component(Name, 3, NC), 161: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 162: (catch lname:insert_component(Name, 6, NC)), 163: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 164: (catch lname:insert_component(Name, 0, NC)), 165: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 166: (catch lname:insert_component(Name, -2, NC)), 167: ok. 168: 169: get_tests(Name) -> 170: ?line #'CosNaming_NameComponent'{id="first", kind="apple"} = 171: lname:get_component(Name, 1), 172: ?line #'CosNaming_NameComponent'{id="always", kind="orange"} = 173: lname:get_component(Name, 4), 174: ?line #'CosNaming_NameComponent'{id="and", kind="plum"} = 175: lname:get_component(Name, 3), 176: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 177: (catch lname:get_component(Name, 5)), 178: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 179: (catch lname:get_component(Name, 0)), 180: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 181: (catch lname:get_component(Name, -2)), 182: ok. 183: 184: delete_tests(Name) -> 185: ?line [#'CosNaming_NameComponent'{id="last", kind="peach"}, 186: #'CosNaming_NameComponent'{id="and", kind="plum"}, 187: #'CosNaming_NameComponent'{id="always", kind="orange"}] = 188: lname:delete_component(Name, 1), 189: ?line [#'CosNaming_NameComponent'{id="first", kind="apple"}, 190: #'CosNaming_NameComponent'{id="last", kind="peach"}, 191: #'CosNaming_NameComponent'{id="and", kind="plum"}] = 192: lname:delete_component(Name, 4), 193: ?line [#'CosNaming_NameComponent'{id="first", kind="apple"}, 194: #'CosNaming_NameComponent'{id="last", kind="peach"}, 195: #'CosNaming_NameComponent'{id="always", kind="orange"}] = 196: lname:delete_component(Name, 3), 197: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 198: (catch lname:delete_component(Name, 6)), 199: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 200: (catch lname:delete_component(Name, 0)), 201: ?line {'EXCEPTION', #'LName_NoComponent'{}} = 202: (catch lname:delete_component(Name, -2)), 203: ok. 204: 205: comparision_tests(Name) -> 206: ?line true = lname:equal(Name, Name), 207: ?line false = lname:equal(Name, lname:delete_component(Name, 2)), 208: ?line true = lname:less_than(lname:delete_component(Name, 2), Name), 209: ?line false = lname:less_than(Name, Name), 210: ?line false = lname:less_than(Name, lname:delete_component(Name, 2)), 211: ok. 212: 213: convertion_tests(Name) -> 214: ?line Name = lname:from_idl_form(Name), 215: ?line Name = lname:to_idl_form(Name), 216: ok.