1# 2# %CopyrightBegin% 3# 4# Copyright Ericsson AB 1999-2020. 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 88ERL_COMPILE_FLAGS += $(MEGACO_ERL_COMPILE_FLAGS) 89 90# We have a behaviour in the test catalog (megaco_test_generator) 91ERL_COMPILE_FLAGS += -pa ../../megaco/test 92 93ERL_PATH = -pa ../../megaco/examples/simple \ 94 -pa ../../megaco/ebin \ 95 -pa ../../et/ebin 96 97ifndef SUITE 98SUITE = megaco_SUITE 99endif 100 101ESTOP = -s init stop 102 103ifeq ($(DONT_STOP),true) 104MAYBE_ESTOP = 105else 106MAYBE_ESTOP = $(ESTOP) 107endif 108 109ETVIEW = -s et_viewer 110ifeq ($(USE_ET_VIEWER),true) 111MAYBE_ETVIEW = 112else 113MAYBE_ETVIEW = $(ETVIEW) 114endif 115 116ifeq ($(MERL),) 117MERL = erl 118endif 119 120ARGS += -noshell 121 122ifeq ($(DISABLE_TC_TIMEOUT),true) 123ARGS += -megaco_test_timeout 124endif 125 126 127# ---------------------------------------------------- 128# Targets 129# ---------------------------------------------------- 130 131tests debug opt: $(BUILDTARGET) 132 133targets: $(TARGET_FILES) 134 135.PHONY: emakebuild 136 137emakebuild: $(EMAKEFILE) 138 139$(EMAKEFILE): 140 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' | grep -v Warning > $(EMAKEFILE) 141 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) | grep -v Warning >> $(EMAKEFILE) 142 143clean: 144 rm -f $(EMAKEFILE) 145 rm -f $(TARGET_FILES) 146 rm -f errs core *~ 147 148docs: 149 150info: 151 @echo "MAKE_EMAKE = $(MAKE_EMAKE)" 152 @echo "EMAKEFILE = $(EMAKEFILE)" 153 @echo "BUILDTARGET = $(BUILDTARGET)" 154 @echo "" 155 @echo "ERL_COMPILE_FLAGS = $(ERL_COMPILE_FLAGS)" 156 @echo "ERL = $(ERL)" 157 @echo "MERL = $(MERL)" 158 @echo "" 159 @echo "ARGS = $(ARGS)" 160 @echo "" 161 @echo "HRL_FILES = $(HRL_FILES)" 162 @echo "ERL_FILES = $(ERL_FILES)" 163 @echo "TARGET_FILES = $(TARGET_FILES)" 164 @echo "" 165 166help: 167 @echo "" 168 @echo "This Makefile controls the test of the $(APPLICATION) application. " 169 @echo "" 170 @echo "There are two separate ways to perform the test of $(APPLICATION)." 171 @echo "" 172 @echo " a) Run the official OTP test-server (which we do not describe here)" 173 @echo "" 174 @echo " b) Run the test-server provided with this application. " 175 @echo " There are a number of targets to run the entire or parts" 176 @echo " of this applications ($(APPLICATION)) test-suite" 177 @echo "" 178 @echo "Targets:" 179 @echo "" 180 @echo " help" 181 @echo " Print this info" 182 @echo "" 183 @echo " info" 184 @echo " Prints various environment variables. " 185 @echo " May be useful when debugging the Makefile. " 186 @echo "" 187 @echo " tests | debug | opt " 188 @echo " Compile all test-code. " 189 @echo "" 190 @echo " clean " 191 @echo " Remove all targets. " 192 @echo "" 193 194 195# ---------------------------------------------------- 196# Special Targets 197# ---------------------------------------------------- 198 199make: targets 200 201utest: make 202 $(MERL) $(ARGS) -sname megaco_utest $(ERL_PATH) \ 203 $(MAYBE_ETVIEW) \ 204 -s megaco_test_lib t $(SUITE) \ 205 $(ESTOP) 206 207ftest: make 208 $(MERL) $(ARGS) -sname megaco_ftest $(ERL_PATH) \ 209 -s megaco_filter \ 210 -s megaco_test_lib t $(SUITE) \ 211 $(ESTOP) 212 213decode_compact_prof1: make 214 $(MERL) $(ARGS) -sname megaco_profile_decode_compact $(ERL_PATH) \ 215 -s megaco_codec_v1_SUITE profile_decode_compact_text_messages \ 216 $(ESTOP) 217 218decode_compact_flex_prof1: make 219 $(MERL) $(ARGS) -sname megaco_profile_decode_compact_flex $(ERL_PATH) \ 220 -s megaco_codec_v1_SUITE profile_decode_compact_flex_text_messages \ 221 $(ESTOP) 222 223decode_compact_prof2: make 224 $(MERL) $(ARGS) -sname megaco_profile_decode_compact $(ERL_PATH) \ 225 -s megaco_codec_v2_SUITE profile_decode_compact_text_messages \ 226 $(ESTOP) 227 228decode_compact_flex_prof2: make 229 $(MERL) $(ARGS) -sname megaco_profile_decode_compact_flex $(ERL_PATH) \ 230 -s megaco_codec_v2_SUITE profile_decode_compact_flex_text_messages \ 231 $(ESTOP) 232 233decode_pretty_prof1: make 234 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty $(ERL_PATH) \ 235 -s megaco_codec_v1_SUITE profile_decode_pretty_text_messages \ 236 $(ESTOP) 237 238decode_pretty_flex_prof1: make 239 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty_flex $(ERL_PATH) \ 240 -s megaco_codec_v1_SUITE profile_decode_pretty_flex_text_messages \ 241 $(ESTOP) 242 243decode_pretty_prof2: make 244 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty $(ERL_PATH) \ 245 -s megaco_codec_v2_SUITE profile_decode_pretty_text_messages \ 246 $(ESTOP) 247 248decode_pretty_flex_prof2: make 249 $(MERL) $(ARGS) -sname megaco_profile_decode_pretty_flex $(ERL_PATH) \ 250 -s megaco_codec_v2_SUITE profile_decode_pretty_flex_text_messages \ 251 $(ESTOP) 252 253encode_compact_prof1: make 254 $(MERL) $(ARGS) -sname megaco_profile_encode_compact $(ERL_PATH) \ 255 -s megaco_codec_v1_SUITE profile_encode_compact_text_messages \ 256 $(ESTOP) 257 258encode_compact_prof2: make 259 $(MERL) $(ARGS) -sname megaco_profile_encode_compact $(ERL_PATH) \ 260 -s megaco_codec_v2_SUITE profile_encode_compact_text_messages \ 261 $(ESTOP) 262 263encode_pretty_prof1: make 264 $(MERL) $(ARGS) -sname megaco_profile_encode_pretty $(ERL_PATH) \ 265 -s megaco_codec_v1_SUITE profile_encode_pretty_text_messages \ 266 $(ESTOP) 267 268encode_pretty_prof2: make 269 $(MERL) $(ARGS) -sname megaco_profile_encode_pretty $(ERL_PATH) \ 270 -s megaco_codec_v2_SUITE profile_encode_pretty_text_messages \ 271 $(ESTOP) 272 273 274########################## 275 276time1: make 277 $(MERL) $(ARGS) -sname megaco_time1 $(ERL_PATH) \ 278 -run megaco_codec_v1_SUITE tt $(TT_DIR) \ 279 $(ESTOP) 280 281time2: make 282 $(MERL) $(ARGS) -sname megaco_time2 $(ERL_PATH) \ 283 -run megaco_codec_v2_SUITE tt $(TT_DIR) \ 284 $(ESTOP) 285 286timeo1: make 287 $(MERL) $(ARGS) -sname megaco_timeo1 $(ERL_PATH) \ 288 -run megaco_codec_v1_SUITE tt_official $(TT_DIR) \ 289 $(ESTOP) 290 291timeo2: make 292 $(MERL) $(ARGS) -sname megaco_timeo2 $(ERL_PATH) \ 293 -run megaco_codec_v2_SUITE tt_official $(TT_DIR) \ 294 $(ESTOP) 295 296timeo3: make 297 $(MERL) $(ARGS) -sname megaco_timeo3 $(ERL_PATH) \ 298 -run megaco_codec_v3_SUITE tt_official $(TT_DIR) \ 299 $(ESTOP) 300 301timet1: make 302 $(MERL) $(ARGS) -sname megaco_timet1 $(ERL_PATH) \ 303 -run megaco_codec_v1_SUITE tt_texts $(TT_DIR) \ 304 $(ESTOP) 305 306timet2: make 307 $(MERL) $(ARGS) -sname megaco_timet2 $(ERL_PATH) \ 308 -run megaco_codec_v2_SUITE tt_texts $(TT_DIR) \ 309 $(ESTOP) 310 311timet3: make 312 $(MERL) $(ARGS) -sname megaco_timet3 $(ERL_PATH) \ 313 -run megaco_codec_v3_SUITE tt_texts $(TT_DIR) \ 314 $(ESTOP) 315 316timeb1: make 317 $(MERL) $(ARGS) -sname megaco_timeb1 $(ERL_PATH) \ 318 -run megaco_codec_v1_SUITE tt_bins $(TT_DIR) \ 319 $(ESTOP) 320 321timeb2: make 322 $(MERL) $(ARGS) -sname megaco_timeb2 $(ERL_PATH) \ 323 -run megaco_codec_v2_SUITE tt_bins $(TT_DIR) \ 324 $(ESTOP) 325 326timeb3: make 327 $(MERL) $(ARGS) -sname megaco_timeb3 $(ERL_PATH) \ 328 -run megaco_codec_v3_SUITE tt_bins $(TT_DIR) \ 329 $(ESTOP) 330 331 332################### 333 334gnuplot_gif: make 335 $(MERL) $(ARGS) -sname megaco_gnuplot_gif $(ERL_PATH) \ 336 -s megaco_call_flow_SUITE gnuplot_gif \ 337 $(ESTOP) 338 339display_v1: make 340 $(MERL) $(ARGS) -sname megaco_display_text_msgs_v1 $(ERL_PATH) \ 341 -s megaco_codec_v1_SUITE display_text_messages \ 342 $(ESTOP) 343 344generate_v1: make 345 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_v1 $(ERL_PATH) \ 346 -s megaco_codec_v1_SUITE generate_text_messages \ 347 $(ESTOP) 348 349display_v2: make 350 $(MERL) $(ARGS) -sname megaco_display_text_msgs_v2 $(ERL_PATH) \ 351 -s megaco_codec_v2_SUITE display_text_messages \ 352 $(ESTOP) 353 354generate_v2: make 355 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_v2 $(ERL_PATH) \ 356 -s megaco_codec_v2_SUITE generate_text_messages \ 357 $(ESTOP) 358 359display_v3: make 360 $(MERL) $(ARGS) -sname megaco_display_text_msgs_v3 $(ERL_PATH) \ 361 -s megaco_codec_v3_SUITE display_text_messages \ 362 $(ESTOP) 363 364generate_v3: make 365 $(MERL) $(ARGS) -sname megaco_generate_text_msgs_v3 $(ERL_PATH) \ 366 -s megaco_codec_v3_SUITE generate_text_messages \ 367 $(ESTOP) 368 369generate: make 370 $(MERL) $(ARGS) -sname megaco_generate_text_msgs $(ERL_PATH) \ 371 -s megaco_codec_v1_SUITE generate_text_messages \ 372 -s megaco_codec_v2_SUITE generate_text_messages \ 373 -s megaco_codec_v3_SUITE generate_text_messages \ 374 $(ESTOP) 375 376node: 377 $(MERL) -sname megaco $(ERL_PATH) 378 379 380# ---------------------------------------------------- 381# Release Targets 382# ---------------------------------------------------- 383 384include $(ERL_TOP)/make/otp_release_targets.mk 385 386release_spec: 387 388release_docs_spec: 389 390release_tests_spec: tests 391 $(INSTALL_DIR) "$(RELSYSDIR)" 392 $(INSTALL_DATA) $(RELTEST_FILES) "$(RELSYSDIR)" 393# $(INSTALL_DATA) $(TEST_SPEC_FILE) $(COVER_SPEC_FILE) \ 394# $(HRL_FILES) $(ERL_FILES) \ 395# "$(RELSYSDIR)" 396# 397 chmod -R u+w "$(RELSYSDIR)" 398 399