1# 2# %CopyrightBegin% 3# 4# Copyright Ericsson AB 1999-2019. All Rights Reserved. 5# 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17# 18# %CopyrightEnd% 19 20include $(ERL_TOP)/make/target.mk 21include $(ERL_TOP)/make/$(TARGET)/otp.mk 22 23 24# ---------------------------------------------------- 25# Application version 26# ---------------------------------------------------- 27include ../vsn.mk 28VSN=$(MEGACO_VSN) 29 30 31# ---------------------------------------------------- 32# Release directory specification 33# ---------------------------------------------------- 34RELSYSDIR = $(RELEASE_PATH)/megaco_test 35 36ifeq ($(findstring win32,$(TARGET)),win32) 37 38MAKEFILE_SRC = Makefile.win32.src 39 40else 41 42MAKEFILE_SRC = Makefile.src 43 44endif 45 46ifeq ($(TT_DIR),) 47TT_DIR = /tmp 48endif 49 50# ---------------------------------------------------- 51# Target Specs 52# ---------------------------------------------------- 53 54include modules.mk 55 56EBIN = . 57 58HRL_FILES = megaco_test_lib.hrl 59 60ERL_FILES = $(MODULES:%=%.erl) 61 62SOURCE = $(HRL_FILES) $(ERL_FILES) 63 64TARGET_FILES = $(MODULES:%=%.$(EMULATOR)) 65 66EMAKEFILE = Emakefile 67MAKE_EMAKE = $(wildcard $(ERL_TOP)/make/make_emakefile) 68 69ifeq ($(MAKE_EMAKE),) 70BUILDTARGET = $(TARGET_FILES) 71RELTEST_FILES = $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) $(SOURCE) 72else 73BUILDTARGET = emakebuild 74RELTEST_FILES = $(EMAKEFILE) $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) $(SOURCE) 75endif 76 77 78# ---------------------------------------------------- 79# FLAGS 80# ---------------------------------------------------- 81 82include ../src/app/megaco.mk 83 84ifeq ($(USE_MEGACO_TEST_CODE),true) 85ERL_COMPILE_FLAGS += -DMEGACO_TEST_CODE=mona_lisa_spelar_doom 86endif 87 88ifeq ($(USE_MEGACO_HIPE),true) 89ERL_COMPILE_FLAGS += +native -Dmegaco_hipe_special=true 90endif 91 92ERL_COMPILE_FLAGS += $(MEGACO_ERL_COMPILE_FLAGS) 93 94# We have a behaviour in the test catalog (megaco_test_generator) 95ERL_COMPILE_FLAGS += -pa ../../megaco/test 96 97ERL_PATH = -pa ../../megaco/examples/simple \ 98 -pa ../../megaco/ebin \ 99 -pa ../../et/ebin 100 101ifndef SUITE 102SUITE = megaco_SUITE 103endif 104 105ESTOP = -s init stop 106 107ifeq ($(DONT_STOP),true) 108MAYBE_ESTOP = 109else 110MAYBE_ESTOP = $(ESTOP) 111endif 112 113ETVIEW = -s et_viewer 114ifeq ($(USE_ET_VIEWER),true) 115MAYBE_ETVIEW = 116else 117MAYBE_ETVIEW = $(ETVIEW) 118endif 119 120ifeq ($(MERL),) 121MERL = erl 122endif 123 124ARGS += -noshell 125 126ifeq ($(DISABLE_TC_TIMEOUT),true) 127ARGS += -megaco_test_timeout 128endif 129 130 131# ---------------------------------------------------- 132# Targets 133# ---------------------------------------------------- 134 135tests debug opt: $(BUILDTARGET) 136 137targets: $(TARGET_FILES) 138 139.PHONY: emakebuild 140 141emakebuild: $(EMAKEFILE) 142 143$(EMAKEFILE): 144 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' | grep -v Warning > $(EMAKEFILE) 145 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) | grep -v Warning >> $(EMAKEFILE) 146 147clean: 148 rm -f $(EMAKEFILE) 149 rm -f $(TARGET_FILES) 150 rm -f errs core *~ 151 152docs: 153 154info: 155 @echo "MAKE_EMAKE = $(MAKE_EMAKE)" 156 @echo "EMAKEFILE = $(EMAKEFILE)" 157 @echo "BUILDTARGET = $(BUILDTARGET)" 158 @echo "" 159 @echo "ERL_COMPILE_FLAGS = $(ERL_COMPILE_FLAGS)" 160 @echo "ERL = $(ERL)" 161 @echo "MERL = $(MERL)" 162 @echo "" 163 @echo "ARGS = $(ARGS)" 164 @echo "" 165 @echo "HRL_FILES = $(HRL_FILES)" 166 @echo "ERL_FILES = $(ERL_FILES)" 167 @echo "TARGET_FILES = $(TARGET_FILES)" 168 @echo "" 169 170help: 171 @echo "" 172 @echo "This Makefile controls the test of the $(APPLICATION) application. " 173 @echo "" 174 @echo "There are two separate ways to perform the test of $(APPLICATION)." 175 @echo "" 176 @echo " a) Run the official OTP test-server (which we do not describe here)" 177 @echo "" 178 @echo " b) Run the test-server provided with this application. " 179 @echo " There are a number of targets to run the entire or parts" 180 @echo " of this applications ($(APPLICATION)) test-suite" 181 @echo "" 182 @echo "Targets:" 183 @echo "" 184 @echo " help" 185 @echo " Print this info" 186 @echo "" 187 @echo " info" 188 @echo " Prints various environment variables. " 189 @echo " May be useful when debugging the Makefile. " 190 @echo "" 191 @echo " tests | debug | opt " 192 @echo " Compile all test-code. " 193 @echo "" 194 @echo " clean " 195 @echo " Remove all targets. " 196 @echo "" 197 198 199# ---------------------------------------------------- 200# Special Targets 201# ---------------------------------------------------- 202 203make: targets 204 205utest: make 206 $(MERL) $(ARGS) -sname megaco_utest $(ERL_PATH) \ 207 $(MAYBE_ETVIEW) \ 208 -s megaco_test_lib t $(SUITE) \ 209 $(ESTOP) 210 211ftest: make 212 $(MERL) $(ARGS) -sname megaco_ftest $(ERL_PATH) \ 213 -s megaco_filter \ 214 -s megaco_test_lib t $(SUITE) \ 215 $(ESTOP) 216 217decode_compact_prof1: make 218 $(MERL) $(ARGS) -sname megaco_profile_decode_compact $(ERL_PATH) \ 219 -s megaco_codec_v1_SUITE profile_decode_compact_text_messages \ 220 $(ESTOP) 221 222decode_compact_flex_prof1: make 223 $(MERL) $(ARGS) -sname megaco_profile_decode_compact_flex $(ERL_PATH) \ 224 -s megaco_codec_v1_SUITE profile_decode_compact_flex_text_messages \ 225 $(ESTOP) 226 227decode_compact_prof2: make 228 $(MERL) $(ARGS) -sname megaco_profile_decode_compact $(ERL_PATH) \ 229 -s megaco_codec_v2_SUITE profile_decode_compact_text_messages \ 230 $(ESTOP) 231 232decode_compact_flex_prof2: make 233 $(MERL) $(ARGS) -sname megaco_profile_decode_compact_flex $(ERL_PATH) \ 234 -s megaco_codec_v2_SUITE profile_decode_compact_flex_text_messages \ 235 $(ESTOP) 236 237decode_pretty_prof1: make 238 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty $(ERL_PATH) \ 239 -s megaco_codec_v1_SUITE profile_decode_pretty_text_messages \ 240 $(ESTOP) 241 242decode_pretty_flex_prof1: make 243 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty_flex $(ERL_PATH) \ 244 -s megaco_codec_v1_SUITE profile_decode_pretty_flex_text_messages \ 245 $(ESTOP) 246 247decode_pretty_prof2: make 248 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty $(ERL_PATH) \ 249 -s megaco_codec_v2_SUITE profile_decode_pretty_text_messages \ 250 $(ESTOP) 251 252decode_pretty_flex_prof2: make 253 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty_flex $(ERL_PATH) \ 254 -s megaco_codec_v2_SUITE profile_decode_pretty_flex_text_messages \ 255 $(ESTOP) 256 257encode_compact_prof1: make 258 $(MERL) $(ARGS) -sname megaco_profile_encode_compact $(ERL_PATH) \ 259 -s megaco_codec_v1_SUITE profile_encode_compact_text_messages \ 260 $(ESTOP) 261 262encode_compact_prof2: make 263 $(MERL) $(ARGS) -sname megaco_profile_encode_compact $(ERL_PATH) \ 264 -s megaco_codec_v2_SUITE profile_encode_compact_text_messages \ 265 $(ESTOP) 266 267encode_pretty_prof1: make 268 $(MERL) $(ARGS) -sname megaco_profile_encode_pretty $(ERL_PATH) \ 269 -s megaco_codec_v1_SUITE profile_encode_pretty_text_messages \ 270 $(ESTOP) 271 272encode_pretty_prof2: make 273 $(MERL) $(ARGS) -sname megaco_profile_encode_pretty $(ERL_PATH) \ 274 -s megaco_codec_v2_SUITE profile_encode_pretty_text_messages \ 275 $(ESTOP) 276 277 278########################## 279 280time1: make 281 $(MERL) $(ARGS) -sname megaco_time1 $(ERL_PATH) \ 282 -run megaco_codec_v1_SUITE tt $(TT_DIR) \ 283 $(ESTOP) 284 285time2: make 286 $(MERL) $(ARGS) -sname megaco_time2 $(ERL_PATH) \ 287 -run megaco_codec_v2_SUITE tt $(TT_DIR) \ 288 $(ESTOP) 289 290timeo1: make 291 $(MERL) $(ARGS) -sname megaco_timeo1 $(ERL_PATH) \ 292 -run megaco_codec_v1_SUITE tt_official $(TT_DIR) \ 293 $(ESTOP) 294 295timeo2: make 296 $(MERL) $(ARGS) -sname megaco_timeo2 $(ERL_PATH) \ 297 -run megaco_codec_v2_SUITE tt_official $(TT_DIR) \ 298 $(ESTOP) 299 300timeo3: make 301 $(MERL) $(ARGS) -sname megaco_timeo3 $(ERL_PATH) \ 302 -run megaco_codec_v3_SUITE tt_official $(TT_DIR) \ 303 $(ESTOP) 304 305timet1: make 306 $(MERL) $(ARGS) -sname megaco_timet1 $(ERL_PATH) \ 307 -run megaco_codec_v1_SUITE tt_texts $(TT_DIR) \ 308 $(ESTOP) 309 310timet2: make 311 $(MERL) $(ARGS) -sname megaco_timet2 $(ERL_PATH) \ 312 -run megaco_codec_v2_SUITE tt_texts $(TT_DIR) \ 313 $(ESTOP) 314 315timet3: make 316 $(MERL) $(ARGS) -sname megaco_timet3 $(ERL_PATH) \ 317 -run megaco_codec_v3_SUITE tt_texts $(TT_DIR) \ 318 $(ESTOP) 319 320timeb1: make 321 $(MERL) $(ARGS) -sname megaco_timeb1 $(ERL_PATH) \ 322 -run megaco_codec_v1_SUITE tt_bins $(TT_DIR) \ 323 $(ESTOP) 324 325timeb2: make 326 $(MERL) $(ARGS) -sname megaco_timeb2 $(ERL_PATH) \ 327 -run megaco_codec_v2_SUITE tt_bins $(TT_DIR) \ 328 $(ESTOP) 329 330timeb3: make 331 $(MERL) $(ARGS) -sname megaco_timeb3 $(ERL_PATH) \ 332 -run megaco_codec_v3_SUITE tt_bins $(TT_DIR) \ 333 $(ESTOP) 334 335 336################### 337 338gnuplot_gif: make 339 $(MERL) $(ARGS) -sname megaco_gnuplot_gif $(ERL_PATH) \ 340 -s megaco_call_flow_SUITE gnuplot_gif \ 341 $(ESTOP) 342 343display_v1: make 344 $(MERL) $(ARGS) -sname megaco_display_text_msgs_v1 $(ERL_PATH) \ 345 -s megaco_codec_v1_SUITE display_text_messages \ 346 $(ESTOP) 347 348generate_v1: make 349 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_v1 $(ERL_PATH) \ 350 -s megaco_codec_v1_SUITE generate_text_messages \ 351 $(ESTOP) 352 353display_v2: make 354 $(MERL) $(ARGS) -sname megaco_display_text_msgs_v2 $(ERL_PATH) \ 355 -s megaco_codec_v2_SUITE display_text_messages \ 356 $(ESTOP) 357 358generate_v2: make 359 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_v2 $(ERL_PATH) \ 360 -s megaco_codec_v2_SUITE generate_text_messages \ 361 $(ESTOP) 362 363display_prev3a: make 364 $(MERL) $(ARGS) -sname megaco_display_text_msgs_prev3a $(ERL_PATH) \ 365 -s megaco_codec_prev3a_SUITE display_text_messages \ 366 $(ESTOP) 367 368display_prev3b: make 369 $(MERL) $(ARGS) -sname megaco_display_text_msgs_prev3b $(ERL_PATH) \ 370 -s megaco_codec_prev3b_SUITE display_text_messages \ 371 $(ESTOP) 372 373generate_prev3b: make 374 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_prev3b $(ERL_PATH) \ 375 -s megaco_codec_prev3b_SUITE generate_text_messages \ 376 $(ESTOP) 377 378display_prev3c: make 379 $(MERL) $(ARGS) -sname megaco_display_text_msgs_prev3c $(ERL_PATH) \ 380 -s megaco_codec_prev3c_SUITE display_text_messages \ 381 $(ESTOP) 382 383generate_prev3c: make 384 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_prev3c $(ERL_PATH) \ 385 -s megaco_codec_prev3c_SUITE generate_text_messages \ 386 $(ESTOP) 387 388display_v3: make 389 $(MERL) $(ARGS) -sname megaco_display_text_msgs_v3 $(ERL_PATH) \ 390 -s megaco_codec_v3_SUITE display_text_messages \ 391 $(ESTOP) 392 393generate_v3: make 394 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_v3 $(ERL_PATH) \ 395 -s megaco_codec_v3_SUITE generate_text_messages \ 396 $(ESTOP) 397 398generate: make 399 $(MERL) $(ARGS) -sname megaco_generate_text_msgs $(ERL_PATH) \ 400 -s megaco_codec_v1_SUITE generate_text_messages \ 401 -s megaco_codec_v2_SUITE generate_text_messages \ 402 -s megaco_codec_v3_SUITE generate_text_messages \ 403 $(ESTOP) 404 405node: 406 $(MERL) -sname megaco $(ERL_PATH) 407 408 409# ---------------------------------------------------- 410# Release Targets 411# ---------------------------------------------------- 412 413include $(ERL_TOP)/make/otp_release_targets.mk 414 415release_spec: 416 417release_docs_spec: 418 419release_tests_spec: tests 420 $(INSTALL_DIR) "$(RELSYSDIR)" 421 $(INSTALL_DATA) $(RELTEST_FILES) "$(RELSYSDIR)" 422# $(INSTALL_DATA) $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) \ 423# $(HRL_FILES) $(ERL_FILES) \ 424# "$(RELSYSDIR)" 425# 426 chmod -R u+w "$(RELSYSDIR)" 427 428