view Makefile @ 160:35c1e2abeb9d

Making ThermostatQA buildable again.
author Zdenek Zambersky <zzambers@redhat.com>
date Thu, 11 Sep 2014 12:55:50 +0200
parents 3d06e2d323cb
children 308d55883a24
line wrap: on
line source

#   ThermostatQA
# 
#    Copyright (C) 2013  Red Hat
# 

SOURCE_DIR=src
BUILD_DIR=bin
REPORT_DIR=reports
LOGS_DIR=logs
TEMPLATE_DIR=templates
JAVAC=javac
JAVA=java

DAILY_REPORT_NAME=daily_report.txt

#JAVA=/opt/jdk1.7.0_07/bin/java

ROOT_PACKAGE=org/thermostat/qa
ANNOTATIONS_PACKAGE=$(ROOT_PACKAGE)/annotations
COMMON_PACKAGE=$(ROOT_PACKAGE)/common
FRAMEWORK_PACKAGE=$(ROOT_PACKAGE)/framework
REPORTER_PACKAGE=$(ROOT_PACKAGE)/reporter
TEST_PACKAGE=$(ROOT_PACKAGE)/testsuites

FLOTR_ADDRESS=http://flotr.googlecode.com/files/prototype.flotr-0.2.0-alpha.zip
FLOTR_DIR=$(TEMPLATE_DIR)/flotr
FLOTR_LIB_DIR=$(FLOTR_DIR)/lib
FLOTR_ARCHIVE=prototype.flotr-0.2.0-alpha.zip

JAVADOC_DIR=$(REPORT_DIR)/javadoc

DATE=`date +%Y-%0m-%0d`

TESTS = \
	SmokeTests \
	AgentTest \
	StorageSmokeTest \
	OutputMessagesTest \
	ServiceSmokeTests \
	GuiClientSmokeTest \
	CliClientSmokeTest \
	GuiClientDBModificationsSmokeTest \
	CliClientDBModificationsSmokeTest \
	AgentWebStorageTest \
	GuiClientWebStorageTest \
	CliClientDBModifWebStorageTest \
	GuiClientDBModifWebStorageTest \
	GuiHostViewSmokeTest \
	CommandChannelSmokeTest \
	CommandChannelWebStorageTest \
	DBSchemeSmokeTest \
	DBGuiHeapDumpTest \
	DBCommandsHeapDumpTest

ALL_CLASSES = \
	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/TestTypes.class \
	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/TestType.class \
	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/StorageTypes.class \
	$(BUILD_DIR)/$(ANNOTATIONS_PACKAGE)/StorageType.class \
	$(BUILD_DIR)/$(COMMON_PACKAGE)/Configuration.class \
	$(BUILD_DIR)/$(COMMON_PACKAGE)/ScreenshotSourceType.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/TestResult.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/StringUtils.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/FileUtils.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/TestStatus.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/TestType.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/CommandLineParameters.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/CommonGenerator.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/GraphPagesGenerator.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/HistoryPagesGenerator.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/IndexPageGenerator.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/JavadocGenerator.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/LogPagesGenerator.class \
	$(BUILD_DIR)/$(REPORTER_PACKAGE)/Reporter.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/Assert.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/TestResult.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/TestStatus.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatGuiTest.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatTest.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ImageProcessing.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatUtilities.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/ThermostatOutputTextsGenerator.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/GuiRobot.class \
	$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/Patterns.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/AgentTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/CliClientSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/OutputMessagesTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/PackageInstallationTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/ServiceSmokeTests.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/SmokeTests.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/StorageSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientDBModificationsSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/CliClientDBModificationsSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/AgentWebStorageTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientWebStorageTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/VersionAnnotationsSelfTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/CliClientDBModifWebStorageTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiClientDBModifWebStorageTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/GuiHostViewSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/CommandChannelSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/CommandChannelWebStorageTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/DBSchemeSmokeTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/DBGuiHeapDumpTest.class \
	$(BUILD_DIR)/$(TEST_PACKAGE)/DBCommandsHeapDumpTest.class

all:	build runtests

build:	builddir $(ALL_CLASSES)

builddir:
	mkdir -p ${BUILD_DIR}

runtests:	$(ALL_CLASSES)
	mkdir -p screenshots
	mkdir -p $(LOGS_DIR)
	mkdir -p $(LOGS_DIR)/$(DATE)
	for tst in $(TESTS); do \
	$(JAVA) -cp $(BUILD_DIR) org.thermostat.qa.testsuites.$$tst 2>&1 | tee $(LOGS_DIR)/$(DATE)/$$tst.log ; \
	done

#webstoragetests:
#	cp 
#	cp 	
#	make runtests
#	cp
#	cp

#create a directory outputtexts/versionN for the current version
#of the output_texts (can be found in the test.properties)
#generate output help messages into files
generatetexts:	$(ALL_CLASSES)
	mkdir -p outputtexts
	mkdir -p outputtexts/`cat test.properties | grep thermostat_version | sed -e 's/^.*=//g;s/$$//g'`
	java -cp $(BUILD_DIR) org.thermostat.qa.framework.ThermostatOutputTextsGenerator

#make icons in given dir smaller / remove unnecessary pixels
cuticons:  $(ALL_CLASSES)
	java -cp $(BUILD_DIR) org.thermostat.qa.framework.IconCut

#generate pattern defs on std output
patternsdef:  $(ALL_CLASSES)
	java -cp $(BUILD_DIR) org.thermostat.qa.framework.PatternDefinitionsGenerator

# targets for all test suites
TESTSUITES = $(shell ls -1 $(SOURCE_DIR)/$(TEST_PACKAGE) | sed -n -e 's/\([A-Za-z0-9]*\)\.java/\1/p')

$(TESTSUITES):	$(BUILD_DIR)
	mkdir -p $(LOGS_DIR)
	mkdir -p $(LOGS_DIR)/$(DATE)
	$(JAVA) -cp $(BUILD_DIR) $(TEST_PACKAGE).$@ 2>&1 | tee $(LOGS_DIR)/$(DATE)/$@.log

listtests:
	for tst in $(TESTS); do \
	echo $$tst ; \
	done

report:	$(ALL_CLASSES) flotr javadoc
	mkdir -p $(REPORT_DIR)
	cp -u $(TEMPLATE_DIR)/style.css $(REPORT_DIR)/style.css
	cp -r $(TEMPLATE_DIR)/flotr $(REPORT_DIR)
	$(JAVA) -cp $(BUILD_DIR) org.thermostat.qa.reporter.Reporter -template-dir=$(TEMPLATE_DIR) -log-dir=$(LOGS_DIR) -report-dir=$(REPORT_DIR) -date=$(DATE) -tests="$(TESTS)"
	sed -i 's/ignored/not applicable/g' $(REPORT_DIR)/log_$(DATE).html 
	sed -i 's/IGNORED/NOT APPLICABLE/g' $(REPORT_DIR)/log_$(DATE).html 
	links -dump $(REPORT_DIR)/index.html 2>/dev/null > $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
	w3m   -dump $(REPORT_DIR)/index.html 2>/dev/null > $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
	lynx  -dump $(REPORT_DIR)/index.html -force_html 2>/dev/null > $(REPORT_DIR)/$(DAILY_REPORT_NAME)
	echo "" >> $(REPORT_DIR)/$(DAILY_REPORT_NAME)
	echo "" >> $(REPORT_DIR)/$(DAILY_REPORT_NAME)
	links -dump $(REPORT_DIR)/log_$(DATE).html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
	w3m   -dump $(REPORT_DIR)/log_$(DATE).html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
	lynx  -dump $(REPORT_DIR)/log_$(DATE).html -force_html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME)
	echo "" >> $(REPORT_DIR)/$(DAILY_REPORT_NAME)
	echo "" >> $(REPORT_DIR)/$(DAILY_REPORT_NAME)
	links -dump $(REPORT_DIR)/hist_10.html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
	w3m   -dump $(REPORT_DIR)/hist_10.html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME) || \
	lynx  -dump $(REPORT_DIR)/hist_10.html -force_html 2>/dev/null >> $(REPORT_DIR)/$(DAILY_REPORT_NAME)

flotr:	$(FLOTR_DIR)/flotr-0.2.0-alpha.js $(FLOTR_LIB_DIR)/canvas2image.js $(FLOTR_LIB_DIR)/canvastext.js $(FLOTR_LIB_DIR)/prototype-1.6.0.2.js

$(FLOTR_DIR)/flotr-0.2.0-alpha.js: $(FLOTR_ARCHIVE)
	mkdir -p $(FLOTR_DIR)
	unzip -j -o $? flotr-0.2.0-alpha/flotr/flotr-0.2.0-alpha.js -d $(FLOTR_DIR)

$(FLOTR_LIB_DIR)/canvas2image.js: $(FLOTR_ARCHIVE)
	mkdir -p $(FLOTR_LIB_DIR)
	unzip -j -o $? flotr-0.2.0-alpha/flotr/lib/canvas2image.js -d $(FLOTR_LIB_DIR)

$(FLOTR_LIB_DIR)/canvastext.js: $(FLOTR_ARCHIVE)
	mkdir -p $(FLOTR_LIB_DIR)
	unzip -j -o $? flotr-0.2.0-alpha/flotr/lib/canvastext.js -d $(FLOTR_LIB_DIR)

$(FLOTR_LIB_DIR)/prototype-1.6.0.2.js: $(FLOTR_ARCHIVE)
	mkdir -p $(FLOTR_LIB_DIR)
	unzip -j -o $? flotr-0.2.0-alpha/flotr/lib/prototype-1.6.0.2.js -d $(FLOTR_LIB_DIR)

prototype.flotr-0.2.0-alpha.zip:
	wget $(FLOTR_ADDRESS)

javadoc:
	mkdir -p $(JAVADOC_DIR)
	javadoc -d $(JAVADOC_DIR) -classpath src org.thermostat.qa.testsuites
	cp -r patterns $(JAVADOC_DIR)/org/thermostat/qa/testsuites/
	cp -r scripts $(JAVADOC_DIR)/org/thermostat/qa/testsuites/

clean:
	rm -rf $(BUILD_DIR)/org
	rm -rf $(TEMPLATE_DIR)/flotr
	rm -rf $(JAVADOC_DIR)
	rmdir $(BUILD_DIR)

cleanlogs: clean_logs

clean_logs:
	rm -rf $(LOGS_DIR)/$(DATE)

clean_all_logs:
	rm -rf $(LOGS_DIR)

$(BUILD_DIR)/$(ROOT_PACKAGE)/%.class:	$(SOURCE_DIR)/$(ROOT_PACKAGE)/%.java
	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<

$(BUILD_DIR)/$(COMMON_PACKAGE)/%.class:	$(SOURCE_DIR)/$(COMMON_PACKAGE)/%.java
	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<

$(BUILD_DIR)/$(FRAMEWORK_PACKAGE)/%.class:	$(SOURCE_DIR)/$(FRAMEWORK_PACKAGE)/%.java
	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<

$(BUILD_DIR)/$(REPORTER_PACKAGE)/%.class:	$(SOURCE_DIR)/$(REPORTER_PACKAGE)/%.java
	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<

$(BUILD_DIR)/$(TEST_PACKAGE)/%.class:	$(SOURCE_DIR)/$(TEST_PACKAGE)/%.java
	$(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $<