# HG changeset patch # User Zdenek Zambersky # Date 1413988976 -7200 # Node ID e8ad3e5e48934a755cf52ec0c2dfe250c3a6f404 # Parent 308d55883a24d22a3ac00157e48d7ce68b60c905 Making testing process automatic diff -r 308d55883a24 -r e8ad3e5e4893 Makefile --- a/Makefile Wed Oct 22 16:41:20 2014 +0200 +++ b/Makefile Wed Oct 22 16:42:56 2014 +0200 @@ -5,9 +5,12 @@ SOURCE_DIR=src BUILD_DIR=bin +CLASSES_DIR=$(BUILD_DIR)/classes +CLASSES_TEMP_DIR=$(BUILD_DIR)/.classes REPORT_DIR=reports LOGS_DIR=logs TEMPLATE_DIR=templates +SCREENSHOTS_DIR=screenshots JAVAC=javac JAVA=java @@ -23,100 +26,47 @@ 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_NAME=prototype.flotr-0.2.0-alpha +FLOTR_ARCHIVE=$(FLOTR_NAME).zip +FLOTR_ADDRESS=http://flotr.googlecode.com/files/$(FLOTR_ARCHIVE) +FLOTR_DIR=$(BUILD_DIR)/flotr FLOTR_LIB_DIR=$(FLOTR_DIR)/lib -FLOTR_ARCHIVE=prototype.flotr-0.2.0-alpha.zip + +TOMCAT_VERSION=7.0.56 +TOMCAT_NAME=apache-tomcat-$(TOMCAT_VERSION) +TOMCAT_ARCHIVE=$(TOMCAT_NAME).tar.gz +TOMCAT_URL=http://apache.mirror.rafal.ca/tomcat/tomcat-$(shell echo "$(TOMCAT_VERSION)" | sed 's/\..*//g' )/v$(TOMCAT_VERSION)/bin/$(TOMCAT_ARCHIVE) +TOMCAT_DIR=$(BUILD_DIR)/$(TOMCAT_NAME) + +THERMOSTAT_VERSION=1.1.0 +THERMOSTAT_REPO_URL=http://icedtea.classpath.org/hg/thermostat/ +THERMOSTAT_USER_DIR=$(BUILD_DIR)/.thermostat +THERMOSTAT_DIR=$(BUILD_DIR)/thermostat +THERMOSTAT_WEB_DEPLOY_DIR=$(TOMCAT_DIR)/webapps/thermostat + +GNOME_KEYRING_USER_DATA_DIR=$(shell realpath -m "$(BUILD_DIR)/.gnome-keyring" ) JAVADOC_DIR=$(REPORT_DIR)/javadoc -DATE=`date +%Y-%0m-%0d` +KILL_DAEMONS=0 -TESTS = \ - SmokeTests \ - AgentTest \ - StorageSmokeTest \ - OutputMessagesTest \ - ServiceSmokeTests \ - GuiClientSmokeTest \ - CliClientSmokeTest \ - GuiClientDBModificationsSmokeTest \ - CliClientDBModificationsSmokeTest \ - AgentWebStorageTest \ - GuiClientWebStorageTest \ - CliClientDBModifWebStorageTest \ - GuiClientDBModifWebStorageTest \ - GuiHostViewSmokeTest \ - CommandChannelSmokeTest \ - CommandChannelWebStorageTest \ - DBSchemeSmokeTest \ - DBGuiHeapDumpTest \ - DBCommandsHeapDumpTest - -# targets for all test suites -TESTSUITES = $(shell ls -1 $(SOURCE_DIR)/$(TEST_PACKAGE) | sed -n -e 's/\([A-Za-z0-9]*\)\.java/\1/p') +DATE=`date +%Y-%0m-%0d` + +# all *.java files in src directory +ALL_SOURCES = $(shell find src -name *.java | tr '\n' ' ') -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 testsuites ( in $(SOURCE_DIR)/$(TEST_PACKAGE) package ) +TESTS = $(shell ls -1 $(SOURCE_DIR)/$(TEST_PACKAGE) | sed -n -e 's/\([A-Za-z0-9]*\)\.java/\1/p') -all: build runtests + +.PHONY: all +all: build runtests #### clean #### clean: - rm -rf $(BUILD_DIR)/org - rm -rf $(TEMPLATE_DIR)/flotr rm -rf $(JAVADOC_DIR) - rmdir $(BUILD_DIR) + rm -rf $(BUILD_DIR) cleanlogs: clean_logs @@ -125,56 +75,106 @@ clean_all_logs: rm -rf $(LOGS_DIR) + +clean_all: + rm -rf $(JAVADOC_DIR) + rm -rf $(BUILD_DIR) + rm -rf $(SCREENSHOTS_DIR) + rm -rf $(LOGS_DIR) #### build #### -build: builddir $(ALL_CLASSES) - -builddir: - mkdir -p ${BUILD_DIR} +.PHONY: build +build: $(CLASSES_DIR) -$(BUILD_DIR)/$(ROOT_PACKAGE)/%.class: $(SOURCE_DIR)/$(ROOT_PACKAGE)/%.java - $(JAVAC) -d $(BUILD_DIR) -sourcepath $(SOURCE_DIR)/ $< +$(BUILD_DIR): + mkdir -p $(BUILD_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)/ $< +$(CLASSES_DIR): | ${BUILD_DIR} + rm -rf $(CLASSES_TEMP_DIR) + mkdir -p $(CLASSES_TEMP_DIR) + $(JAVAC) -d $(CLASSES_TEMP_DIR) -sourcepath $(SOURCE_DIR)/ $(ALL_SOURCES) + mkdir -p $(shell dirname $(CLASSES_DIR) ) + mv -T $(CLASSES_TEMP_DIR) $(CLASSES_DIR) #### test #### -runtests: $(ALL_CLASSES) - mkdir -p screenshots +.PHONY: runtests +runtests: $(TESTS) + +$(TESTS): build tomcat thermostat testwarning | $(GNOME_KEYRING_USER_DATA_DIR) + mkdir -p $(SCREENSHOTS_DIR) 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 + # stop mongo database if running + killall mongod || true + # (re)start gnome-keyring-daemon with custom configuration + killall gnome-keyring-daemon || true + export XDG_DATA_HOME="$(GNOME_KEYRING_USER_DATA_DIR)" ; \ + gnome-keyring-daemon --start --components=secrets + # start test with overwriten USER_THERMOSTAT_HOME and required parameters + USER_THERMOSTAT_HOME=$(THERMOSTAT_USER_DIR) \ + $(JAVA) -cp $(CLASSES_DIR) \ + -Dtomcat.home=$(TOMCAT_DIR) \ + -Dthermostat.home=$(THERMOSTAT_DIR)/distribution/target/image \ + -Dthermostat.user.home=$(THERMOSTAT_USER_DIR) \ + -Dthermostat.executable.name=thermostat \ + -Dthermostat.executable.path=$(THERMOSTAT_DIR)/distribution/target/image/bin \ + -Dthermostat.version=$(THERMOSTAT_VERSION) \ + -Dscreenshot.source=normal \ + -Dclean.after.gui.test=true \ + $(TEST_PACKAGE).$@ 2>&1 | tee $(LOGS_DIR)/$(DATE)/$@.log + # stop gnome-keyring-daemon with custom config after test + killall gnome-keyring-daemon; + -$(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 +.PHONY: testwarning +testwarning: + @# if KILL_DAEMONS != 1 and mongo or gnome keyring is running + @# warn user that they need to be killed + @ps aux | grep -v "grep" | grep -q "mongod" ; \ + mongo=$$? ; \ + ps aux | grep -v "grep" | grep -q "gnome-keyring-daemon" ; \ + gnomekeyring=$$? ; \ + if [ $(KILL_DAEMONS) -eq 0 ] && [ $$mongo -eq 0 -o $$gnomekeyring -eq 0 ] ; then \ + echo "--------------------------------------------------------------------" ; \ + echo "This test suite runs mongo database and gnome-keyring daemons with" ; \ + echo "custom configuration, so it will kill any running instance of these" ; \ + echo "daemons before start of testing." ; \ + echo ; \ + while true; do \ + echo "Do you want to continue? (yes/no)" ; \ + read answer ; \ + case "$${answer}" in \ + yes) \ + break \ + ;; \ + no) \ + echo "Canelling ..." ; \ + exit 1 \ + ;; \ + *) \ + echo "unrecognized answer: $${answer}" ; \ + echo ; \ + ;; \ + esac \ + done \ + fi ; \ + true +.PHONY: listtests listtests: for tst in $(TESTS); do \ echo $$tst ; \ done #### reports & javadoc #### - + 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)" + cp -r $(FLOTR_DIR) $(REPORT_DIR) + $(JAVA) -cp $(CLASSES_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) || \ @@ -190,7 +190,7 @@ 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) - + javadoc: mkdir -p $(JAVADOC_DIR) javadoc -d $(JAVADOC_DIR) -classpath src org.thermostat.qa.testsuites @@ -198,13 +198,6 @@ cp -r scripts $(JAVADOC_DIR)/org/thermostat/qa/testsuites/ #### other #### - -#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) @@ -212,38 +205,106 @@ 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 + $(JAVA) -cp $(CLASSES_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 + $(JAVA) -cp $(CLASSES_DIR) org.thermostat.qa.framework.IconCut #generate pattern defs on std output patternsdef: $(ALL_CLASSES) - java -cp $(BUILD_DIR) org.thermostat.qa.framework.PatternDefinitionsGenerator + $(JAVA) -cp $(CLASSES_DIR) org.thermostat.qa.framework.PatternDefinitionsGenerator #### OTHER SOFTWARE #### #### FLOTR #### +.PHONY: flotr 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) +$(FLOTR_DIR)/flotr-0.2.0-alpha.js: $(BUILD_DIR)/$(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) +$(FLOTR_LIB_DIR)/canvas2image.js: $(BUILD_DIR)/$(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) +$(FLOTR_LIB_DIR)/canvastext.js: $(BUILD_DIR)/$(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) +$(FLOTR_LIB_DIR)/prototype-1.6.0.2.js: $(BUILD_DIR)/$(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) +$(BUILD_DIR)/$(FLOTR_ARCHIVE): + wget -P $(BUILD_DIR) $(FLOTR_ADDRESS) + +#### TOMCAT #### + +.PHONY: tomcat +tomcat: | $(TOMCAT_DIR) + +$(TOMCAT_DIR): | $(BUILD_DIR) + wget -P $(BUILD_DIR) $(TOMCAT_URL) + tar xf $(BUILD_DIR)/$(TOMCAT_ARCHIVE) -C $(BUILD_DIR) + if [ "$(BUILD_DIR)/$(TOMCAT_NAME)" != "$(TOMCAT_DIR)" ] ; then \ + mkdir -p "$(TOMCAT_DIR)" ; \ + mv -T "$(BUILD_DIR)/$(TOMCAT_NAME)" "$(TOMCAT_DIR)" ; \ + fi + +#### THERMOSTAT #### + +.PHONY: thermostat +thermostat: thermostat-build thermostat-setup + + +.PHONY: thermostat-setup +thermostat-setup: $(THERMOSTAT_WEB_DEPLOY_DIR) | $(THERMOSTAT_USER_DIR)/data/setup-complete.stamp + +$(THERMOSTAT_USER_DIR)/data/setup-complete.stamp: | $(THERMOSTAT_USER_DIR) $(THERMOSTAT_DIR)/distribution/target/image + # init storage and add agent-tester and client-tester users in custom user dir + killall mongod || true + export USER_THERMOSTAT_HOME=$(THERMOSTAT_USER_DIR) &&\ + if [ -f "$(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat-devsetup" ] ; then \ + $(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat-devsetup; \ + fi &&\ + $(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat storage --start &&\ + echo -e \ + "use thermostat\n\ + db.auth(\"mongodevuser\", \"mongodevpassword\")\n\ + db.addUser(\"agent-tester\",\"heslo1\")\n\ + db.addUser(\"client-tester\",\"heslo2\")\n\ + exit\n" \ + | mongo 127.0.0.1:27518; \ + $(THERMOSTAT_DIR)/distribution/target/image/bin/thermostat storage --stop + +$(THERMOSTAT_USER_DIR): | $(THERMOSTAT_DIR) + mkdir -p $(THERMOSTAT_USER_DIR) + +$(THERMOSTAT_WEB_DEPLOY_DIR): tomcat thermostat-build + rm -rf $(THERMOSTAT_WEB_DEPLOY_DIR) + mkdir -p $(THERMOSTAT_WEB_DEPLOY_DIR) + cp $(THERMOSTAT_DIR)/web/war/target/*.war $(THERMOSTAT_WEB_DEPLOY_DIR) + +.PHONY: thermostat-build +thermostat-build: | $(THERMOSTAT_DIR)/distribution/target/image + +$(THERMOSTAT_DIR)/distribution/target/image: | $(THERMOSTAT_DIR)/pom.xml + cd $(THERMOSTAT_DIR) &&\ + mvn -Dmaven.test.skip=true clean install + +$(THERMOSTAT_DIR)/pom.xml: | $(THERMOSTAT_DIR) + hg clone $(THERMOSTAT_REPO_URL) $(THERMOSTAT_DIR) + +$(THERMOSTAT_DIR): | ${BUILD_DIR} + mkdir -p $(THERMOSTAT_DIR) + +#### GNOME KEYRING #### + +$(GNOME_KEYRING_USER_DATA_DIR): + # create custom config directory for gnome-keyring and copy data there + mkdir -p $(GNOME_KEYRING_USER_DATA_DIR) + cp -r storageconfig/keyrings $(GNOME_KEYRING_USER_DATA_DIR) diff -r 308d55883a24 -r e8ad3e5e4893 README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Wed Oct 22 16:42:56 2014 +0200 @@ -0,0 +1,128 @@ +ThermostatQA +============ + +This project contains QA tests for Thermostat. Thermostat itself +contains a set of unit and integration tests, but this tries to be +much more comprehensive. + +Requirements +----------- + +gnome-keyring +mongodb +lynx + +Running +------- + +Build and run using: + + $ make + +This will download any necessary tools and then set up everything and run the +entire test suite. Since the test exercises the GUI, it might be a good idea to +run it in a seprate VNC session. + +Directory Structure +------------------- + +- `bin/` compiled classes +- `logs/` logs from tests +- `reports/` reports from tests +- `screenshots/` screenshots from tests +- `scripts/` scripts for running the tsts + +Important makefile targets +-------------------------- + +all builds project an runs tests + +build builds all classes + +runtests executes all test (automaticaly builds project and download + necessary software if needed) + +listtests lists all available tests + + runs single test of that name + +report generates report from tests (runtests is needed to be executed before) + +javadoc generages javadoc + + +thermostat clones, builds and sets-up thermostat (if necessary) + +tomcat downloads and unpacks apache-tomcat (if necessary) + + + +Important makefile variables +---------------------------- + +BUILD_DIR : directory genrated by build phase used to store compiled + classes and also downloaded files/software + and custom configuration directories used for testing + (default: bin) + +CLASSES_DIR : directory where generated classes are stored + (default: /classes) + +THERMOSTAT_REPO_URL : repository used to clone Thermostat for testing + (default: http://icedtea.classpath.org/hg/thermostat/ ) + +THERMOSTAT_VERSION : version for which ThermostatQA is configured + (default: 1.1.0) + +THERMOSTAT_USER_DIR : directory used for thermostat user configuration during testing + (used to set USER_THERMOSTAT_HOME environment variable) + (default: /.thermostat) + +THERMOSTAT_DIR : directory with thermostat for testing (if present) + or directory where to clone thermostat (if not present) + (default: /thermostat) + +TOMCAT_DIR : directory with apache-tomcat used for testing (if present) + or directory where to download thermostat (if not present) + (default: /tomcat) + +KILL_DAEMONS : if this variable is set to 1 test suite will not ask for + confirmation before killing daemons (mongo, gnome-keyring). + if there is any of them running. + (see Side Efects) + +Examples +--------- + +testing using default config (builds tests, downloads tomcat and all nessessary +software and runs test using default config) + + make + +testing thermostat from custom repository (url): + + make THERMOSTAT_REPO_URL= + +testing thermostat stored at custom path, using custom tomcat + + make THERMOSTAT_DIR= TOMCAT_DIR= + + +Side Effects +------------ + +By default these tests do not modify settings in ~/.thermostat or any other +files or settings outside this (ThermostatQA) directory (and subdirs). + +When using custom Thermostat, tests also modify files in +/distribution/target/image/etc directory. + +When using custom apache-tomcat ThermostatQA also deploys thermostat war archive +in /webapps/thermostat. + +Running tests needs to terminate running instances of mongod +and gnome-keyring-daemon, because it runs theese daemons with custom +configuration. If some of these deamons running test suite will ask +for confirmation to kill them. This can be skiped by setting KILL_DAEMONS +makefile variable. +(see Important makefile variables) diff -r 308d55883a24 -r e8ad3e5e4893 outputtexts/1.1.0/thermostat.txt --- a/outputtexts/1.1.0/thermostat.txt Wed Oct 22 16:41:20 2014 +0200 +++ b/outputtexts/1.1.0/thermostat.txt Wed Oct 22 16:42:56 2014 +0200 @@ -1,6 +1,7 @@ list of commands: help show help for a given command or help overview + add-mongodb-user adds a new mongodb user to the thermostat DB. It reads credentials from standard input. agent starts and stops the thermostat agent clean-data Drop all data related to all of the specified agents dump-heap trigger a heap dump on the VM @@ -17,6 +18,8 @@ shell launches the Thermostat interactive shell show-heap-histogram show the heap histogram storage starts and stops the thermostat storage + storage-profile profile how fast storage operations are validate validates a thermostat plug-in XML file against the schema vm-info shows basic information about a VM vm-stat show various statistics about a VM + web-storage-service starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint diff -r 308d55883a24 -r e8ad3e5e4893 outputtexts/1.1.0/thermostat_help.txt --- a/outputtexts/1.1.0/thermostat_help.txt Wed Oct 22 16:41:20 2014 +0200 +++ b/outputtexts/1.1.0/thermostat_help.txt Wed Oct 22 16:42:56 2014 +0200 @@ -1,6 +1,7 @@ list of commands: help show help for a given command or help overview + add-mongodb-user adds a new mongodb user to the thermostat DB. It reads credentials from standard input. agent starts and stops the thermostat agent clean-data Drop all data related to all of the specified agents dump-heap trigger a heap dump on the VM @@ -17,6 +18,8 @@ shell launches the Thermostat interactive shell show-heap-histogram show the heap histogram storage starts and stops the thermostat storage + storage-profile profile how fast storage operations are validate validates a thermostat plug-in XML file against the schema vm-info shows basic information about a VM vm-stat show various statistics about a VM + web-storage-service starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint diff -r 308d55883a24 -r e8ad3e5e4893 outputtexts/1.1.0/thermostat_help_storage.txt --- a/outputtexts/1.1.0/thermostat_help_storage.txt Wed Oct 22 16:41:20 2014 +0200 +++ b/outputtexts/1.1.0/thermostat_help_storage.txt Wed Oct 22 16:42:56 2014 +0200 @@ -1,13 +1,16 @@ -usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q] [-l ] +usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q] + [--permitLocalhostException] [-l ] starts and stops the thermostat storage thermostat storage - -d,--dryRun run the service in dry run mode - -l,--logLevel sets the log level for this invocation. Possible - values for in decreasing severity are: - SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST - and OFF - -q,--quiet don't produce any output - --start start the database - --status check if the database is running - --stop stop the database + -d,--dryRun run the service in dry run mode + -l,--logLevel sets the log level for this invocation. + Possible values for in decreasing + severity are: SEVERE, WARNING, INFO, CONFIG, + FINE, FINER, FINEST and OFF + --permitLocalhostException permit local host connections with no + credentials + -q,--quiet don't produce any output + --start start the database + --status check if the database is running + --stop stop the database diff -r 308d55883a24 -r e8ad3e5e4893 outputtexts/head/thermostat.txt --- a/outputtexts/head/thermostat.txt Wed Oct 22 16:41:20 2014 +0200 +++ b/outputtexts/head/thermostat.txt Wed Oct 22 16:42:56 2014 +0200 @@ -1,12 +1,14 @@ list of commands: help show help for a given command or help overview + add-mongodb-user adds a new mongodb user to the thermostat DB. It reads credentials from standard input. agent starts and stops the thermostat agent clean-data Drop all data related to all of the specified agents dump-heap trigger a heap dump on the VM find-objects finds objects in a heapdump find-root finds the shortest path from an object to a GC root gui launches the GUI client + list-categories lists all registered categories in Storage list-heap-dumps list all heap dumps list-vms lists all currently monitored VMs object-info prints information about an object in a heap dump @@ -16,7 +18,8 @@ shell launches the Thermostat interactive shell show-heap-histogram show the heap histogram storage starts and stops the thermostat storage + storage-profile profile how fast storage operations are validate validates a thermostat plug-in XML file against the schema vm-info shows basic information about a VM vm-stat show various statistics about a VM - webservice starts and stops the thermostat web service + web-storage-service starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint diff -r 308d55883a24 -r e8ad3e5e4893 outputtexts/head/thermostat_help.txt --- a/outputtexts/head/thermostat_help.txt Wed Oct 22 16:41:20 2014 +0200 +++ b/outputtexts/head/thermostat_help.txt Wed Oct 22 16:42:56 2014 +0200 @@ -1,12 +1,14 @@ list of commands: help show help for a given command or help overview + add-mongodb-user adds a new mongodb user to the thermostat DB. It reads credentials from standard input. agent starts and stops the thermostat agent clean-data Drop all data related to all of the specified agents dump-heap trigger a heap dump on the VM find-objects finds objects in a heapdump find-root finds the shortest path from an object to a GC root gui launches the GUI client + list-categories lists all registered categories in Storage list-heap-dumps list all heap dumps list-vms lists all currently monitored VMs object-info prints information about an object in a heap dump @@ -16,7 +18,8 @@ shell launches the Thermostat interactive shell show-heap-histogram show the heap histogram storage starts and stops the thermostat storage + storage-profile profile how fast storage operations are validate validates a thermostat plug-in XML file against the schema vm-info shows basic information about a VM vm-stat show various statistics about a VM - webservice starts and stops the thermostat web service + web-storage-service starts mongodb storage, an embedded servlet container with the web archive deployed and then connects an agent to this web endpoint diff -r 308d55883a24 -r e8ad3e5e4893 outputtexts/head/thermostat_help_storage.txt --- a/outputtexts/head/thermostat_help_storage.txt Wed Oct 22 16:41:20 2014 +0200 +++ b/outputtexts/head/thermostat_help_storage.txt Wed Oct 22 16:42:56 2014 +0200 @@ -1,13 +1,16 @@ -usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q] [-l ] +usage: thermostat storage <-start|--stop|--status> [--dryRun] [-q] + [--permitLocalhostException] [-l ] starts and stops the thermostat storage thermostat storage - -d,--dryRun run the service in dry run mode - -l,--logLevel sets the log level for this invocation. Possible - values for in decreasing severity are: - SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST - and OFF - -q,--quiet don't produce any output - --start start the database - --status check if the database is running - --stop stop the database + -d,--dryRun run the service in dry run mode + -l,--logLevel sets the log level for this invocation. + Possible values for in decreasing + severity are: SEVERE, WARNING, INFO, CONFIG, + FINE, FINER, FINEST and OFF + --permitLocalhostException permit local host connections with no + credentials + -q,--quiet don't produce any output + --start start the database + --status check if the database is running + --stop stop the database diff -r 308d55883a24 -r e8ad3e5e4893 src/org/thermostat/qa/common/Configuration.java --- a/src/org/thermostat/qa/common/Configuration.java Wed Oct 22 16:41:20 2014 +0200 +++ b/src/org/thermostat/qa/common/Configuration.java Wed Oct 22 16:42:56 2014 +0200 @@ -50,7 +50,6 @@ private String thermostatVersion = null; private String thermostatHome = null; private String thermostatUserHome = null; - private String apacheTomcatHome = null; private boolean performCleaningAfterGuiTests = false; //the way how the screenshots will be provided @@ -102,16 +101,15 @@ */ private void readAllProperties(FileInputStream fileInputStream) throws IOException { - Properties properties = new Properties(); - properties.load(fileInputStream); - this.thermostatExecutablePath = getPathProperty(properties, "thermostat_executable_path"); - this.thermostatExecutableName = properties.getProperty("thermostat_executable_name"); - this.thermostatVersion = properties.getProperty("thermostat_version"); - this.thermostatHome = getPathProperty(properties, "thermostat_home"); - this.thermostatUserHome = getPathProperty(properties, "thermostat_user_home"); - this.apacheTomcatHome = getPathProperty(properties, "apache_tomcat_home"); + //Properties properties = new Properties(); + //properties.load(fileInputStream); + this.thermostatExecutablePath = getPathProperty("thermostat.executable.path"); // getPathProperty(properties, "thermostat_executable_path"); + this.thermostatExecutableName = System.getProperty("thermostat.executable.name"); // properties.getProperty("thermostat_executable_name"); + this.thermostatVersion = System.getProperty("thermostat.version"); // properties.getProperty("thermostat_version"); + this.thermostatHome = getPathProperty("thermostat.home"); // getPathProperty(properties, "thermostat_home"); + this.thermostatUserHome = getPathProperty("thermostat.user.home"); // getPathProperty(properties, "thermostat_user_home"); - String str = properties.getProperty("screenshot_source"); + String str = System.getProperty("screenshot.source"); // properties.getProperty("screenshot_source"); if( str.equals("dummy") ){ this.screenshotsSource = ScreenshotSourceType.DUMMY; }else if( str.equals("normal")){ @@ -120,12 +118,12 @@ this.screenshotsSource = ScreenshotSourceType.XVFB; } - this.performCleaningAfterGuiTests = properties.getProperty("clean_after_gui_test").equals("true"); + this.performCleaningAfterGuiTests = System.getProperty("clean.after.gui.test").toLowerCase().equals("true") ;// properties.getProperty("clean_after_gui_test").equals("true"); } /* eliminating need of tailing separator */ - private static String getPathProperty(Properties properties, String name){ - String value = properties.getProperty(name); + private static String getPathProperty(String name) { // Properties properties, String name){ + String value = System.getProperty(name);// properties.getProperty(name); return value.endsWith(File.separator) ? value : value + File.separator; } @@ -165,14 +163,7 @@ { return this.thermostatUserHome; } - - public String getApacheTomcatHome() - { - return this.apacheTomcatHome; - } - - public boolean getPerformCleaningAfterGuiTests() { return performCleaningAfterGuiTests; } diff -r 308d55883a24 -r e8ad3e5e4893 src/org/thermostat/qa/framework/ThermostatUtilities.java --- a/src/org/thermostat/qa/framework/ThermostatUtilities.java Wed Oct 22 16:41:20 2014 +0200 +++ b/src/org/thermostat/qa/framework/ThermostatUtilities.java Wed Oct 22 16:42:56 2014 +0200 @@ -36,6 +36,7 @@ import java.awt.event.KeyEvent; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; @@ -58,6 +59,9 @@ public abstract class ThermostatUtilities { + + private static final String tomcatHome = System.getProperty("tomcat.home"); + /** * Expected exit value of all thermostat processes. */ @@ -615,7 +619,7 @@ { //startup.sh from the apache-tomcat dir List lines = new LinkedList(); - lines.add(this.configuration.getApacheTomcatHome() + "bin/startup.sh"); + lines.add(tomcatHome + File.separator + "bin/startup.sh"); runBashScriptWithContent("webStorage_startTomcat.sh", lines); } @@ -624,7 +628,7 @@ { //shutdown.sh from the apache-tomcat dir List lines = new LinkedList(); - lines.add(this.configuration.getApacheTomcatHome() + "bin/shutdown.sh"); + lines.add(tomcatHome + File.separator + "bin/shutdown.sh"); runBashScriptWithContent("webStorage_stopTomcat.sh", lines); } @@ -634,7 +638,7 @@ List result = new LinkedList(); //for now only the catalina.out file - String catalinaOutFile = this.configuration.getApacheTomcatHome()+"logs/"+filename; + String catalinaOutFile = tomcatHome + File.separator + "logs/" + filename; result = FileUtils.readTextFile(catalinaOutFile); return result; @@ -648,14 +652,14 @@ //and localhost_access_log_* files List lines = new LinkedList(); - lines.add("cat " + this.configuration.getApacheTomcatHome() + "logs/thermostat-web-storage.* > " + - this.configuration.getApacheTomcatHome() + "logs/thermostat-web-storage-logs.txt"); + lines.add("cat " + tomcatHome + File.separator + "logs/thermostat-web-storage.* > " + + tomcatHome + File.separator + "logs/thermostat-web-storage-logs.txt"); - lines.add("cat " + this.configuration.getApacheTomcatHome() + "logs/localhost_access_log_* > " + - this.configuration.getApacheTomcatHome() + "logs/localhost_access_logs.txt"); + lines.add("cat " + tomcatHome + File.separator + "logs/localhost_access_log_* > " + + tomcatHome + File.separator + "logs/localhost_access_logs.txt"); - lines.add("cat " + this.configuration.getApacheTomcatHome() + "logs/catalina* > " + - this.configuration.getApacheTomcatHome() + "logs/catalina-logs.txt"); + lines.add("cat " + tomcatHome + File.separator + "logs/catalina* > " + + tomcatHome + File.separator + "logs/catalina-logs.txt"); runBashScriptWithContent("webStorage_allThermostatLogsInOne.sh", lines); } @@ -665,9 +669,9 @@ //rm all log files List lines = new LinkedList(); - lines.add("rm "+this.configuration.getApacheTomcatHome() + "logs/catalina*"); - lines.add("rm "+this.configuration.getApacheTomcatHome() + "logs/thermostat-web-storage*"); - lines.add("rm "+this.configuration.getApacheTomcatHome() + "logs/localhost_access_log*"); + lines.add("rm "+ tomcatHome + File.separator + "logs/catalina*"); + lines.add("rm "+ tomcatHome + File.separator + "logs/thermostat-web-storage*"); + lines.add("rm "+ tomcatHome + File.separator + "logs/localhost_access_log*"); runBashScriptWithContent("webStorage_removeAllThermostatLogsFromTomcat.sh", lines); } diff -r 308d55883a24 -r e8ad3e5e4893 src/org/thermostat/qa/testsuites/DBCommandsHeapDumpTest.java --- a/src/org/thermostat/qa/testsuites/DBCommandsHeapDumpTest.java Wed Oct 22 16:41:20 2014 +0200 +++ b/src/org/thermostat/qa/testsuites/DBCommandsHeapDumpTest.java Wed Oct 22 16:42:56 2014 +0200 @@ -79,7 +79,7 @@ //list-vms, find a running vm, dump a heap try { - List vms = thermostatListVms("", ""); + List vms = thermostatListVms("client-tester", "heslo2"); boolean foundRunning = false; int index = -1; for(String vm : vms) diff -r 308d55883a24 -r e8ad3e5e4893 src/org/thermostat/qa/testsuites/DBGuiHeapDumpTest.java --- a/src/org/thermostat/qa/testsuites/DBGuiHeapDumpTest.java Wed Oct 22 16:41:20 2014 +0200 +++ b/src/org/thermostat/qa/testsuites/DBGuiHeapDumpTest.java Wed Oct 22 16:42:56 2014 +0200 @@ -87,7 +87,7 @@ robot.saveScreenshot("VMViewHeapAnalyzer2"); //click on Heap Dump button - r = checkForPattern(robot, Patterns.VMViewHeapAnalyzerTab.HEAP_DUMP_LABEL, "vm view icon"); + r = checkForPattern(robot, Patterns.VMViewHeapAnalyzerTab.HEAP_DUMP_ICON, "vm view icon"); robot.clickToRectangle(r); return robot; @@ -102,8 +102,8 @@ @Override protected void setUp() { - // TODO - //start storage and agent + startStorage(); + new AgentThread().start(); try { this.robot = dumpAHeap(); diff -r 308d55883a24 -r e8ad3e5e4893 src/org/thermostat/qa/testsuites/OutputMessagesTest.java --- a/src/org/thermostat/qa/testsuites/OutputMessagesTest.java Wed Oct 22 16:41:20 2014 +0200 +++ b/src/org/thermostat/qa/testsuites/OutputMessagesTest.java Wed Oct 22 16:42:56 2014 +0200 @@ -78,8 +78,7 @@ {"help", "shell"}, {"help", "storage"}, {"help", "vm-info"}, - {"help", "vm-stat"}, - {"help", "webservice"} }; + {"help", "vm-stat"}}; private String outputsPath; @@ -102,8 +101,7 @@ THERMOSTAT_HELP_SHOW_HEAP_HISTOGRAM_MESSAGE, THERMOSTAT_HELP_STORAGE_MESSAGE, THERMOSTAT_HELP_VM_INFO_MESSAGE, - THERMOSTAT_HELP_VM_STAT_MESSAGE, - THERMOSTAT_HELP_WEBSERVICE_MESSAGE; + THERMOSTAT_HELP_VM_STAT_MESSAGE; @Override protected void setUp() @@ -129,7 +127,6 @@ THERMOSTAT_HELP_STORAGE_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_storage.txt"); THERMOSTAT_HELP_VM_INFO_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_vm-info.txt"); THERMOSTAT_HELP_VM_STAT_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_vm-stat.txt"); - THERMOSTAT_HELP_WEBSERVICE_MESSAGE = FileUtils.getStringArrayFromOutputTextFile(outputsPath+"thermostat_help_webservice.txt"); } @Override @@ -394,17 +391,6 @@ } /** - * Method testCheckHelpWebserviceMessage - * checks output of command "thermostat help webservice". - * - * @throws IOException - */ - public void testCheckHelpWebserviceMessage() throws IOException - { - readAndCheckThermostatMessage(THERMOSTAT_HELP_WEBSERVICE_MESSAGE, allflags[20]); - } - - /** * Entry point to this test. * * @param args diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/1.1.0/db-mongodb/agent.auth --- a/storageconfig/1.1.0/db-mongodb/agent.auth Wed Oct 22 16:41:20 2014 +0200 +++ b/storageconfig/1.1.0/db-mongodb/agent.auth Wed Oct 22 16:42:56 2014 +0200 @@ -4,6 +4,5 @@ # Uncomment the following lines and replace with your storage authentication # parameters as needed. # -#username=thermostat -#password=thermostat - +username=agent-tester +password=heslo1 diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/1.1.0/db-mongodb/client.properties --- a/storageconfig/1.1.0/db-mongodb/client.properties Wed Oct 22 16:41:20 2014 +0200 +++ b/storageconfig/1.1.0/db-mongodb/client.properties Wed Oct 22 16:42:56 2014 +0200 @@ -1,5 +1,5 @@ -# -#Mon Aug 26 10:34:41 CEST 2013 +#Wed Sep 10 14:03:19 CEST 2014 connection-url=mongodb\://127.0.0.1\:27518 -save-entitlements=false -username= +save-entitlements=true +username=client-tester + diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/1.1.0/web-tomcat/client.properties --- a/storageconfig/1.1.0/web-tomcat/client.properties Wed Oct 22 16:41:20 2014 +0200 +++ b/storageconfig/1.1.0/web-tomcat/client.properties Wed Oct 22 16:42:56 2014 +0200 @@ -1,6 +1,6 @@ # #Thu Aug 22 16:10:25 CEST 2013 -password=heslo2 +#password=heslo2 connection-url=http\://127.0.0.1\:8080/thermostat/storage save-entitlements=true username=client-tester diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/head/db-mongodb/agent.auth --- a/storageconfig/head/db-mongodb/agent.auth Wed Oct 22 16:41:20 2014 +0200 +++ b/storageconfig/head/db-mongodb/agent.auth Wed Oct 22 16:42:56 2014 +0200 @@ -4,6 +4,5 @@ # Uncomment the following lines and replace with your storage authentication # parameters as needed. # -#username=thermostat -#password=thermostat - +username=agent-tester +password=heslo1 diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/head/db-mongodb/client.properties --- a/storageconfig/head/db-mongodb/client.properties Wed Oct 22 16:41:20 2014 +0200 +++ b/storageconfig/head/db-mongodb/client.properties Wed Oct 22 16:42:56 2014 +0200 @@ -1,5 +1,5 @@ -# -#Mon Aug 26 10:34:41 CEST 2013 +#Wed Sep 10 14:03:19 CEST 2014 connection-url=mongodb\://127.0.0.1\:27518 -save-entitlements=false -username= +save-entitlements=true +username=client-tester + diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/head/web-tomcat/client.properties --- a/storageconfig/head/web-tomcat/client.properties Wed Oct 22 16:41:20 2014 +0200 +++ b/storageconfig/head/web-tomcat/client.properties Wed Oct 22 16:42:56 2014 +0200 @@ -1,6 +1,6 @@ # #Thu Aug 22 16:10:25 CEST 2013 -password=heslo2 +#password=heslo2 connection-url=http\://127.0.0.1\:8080/thermostat/storage save-entitlements=true username=client-tester diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/keyrings/Default.keyring --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/storageconfig/keyrings/Default.keyring Wed Oct 22 16:42:56 2014 +0200 @@ -0,0 +1,40 @@ +[keyring] +display-name=Default +ctime=1411732163 +mtime=0 +lock-on-idle=false +lock-after=false + +[2] +item-type=0 +display-name=Thermostat auth info for: client-tester@mongodb://127.0.0.1:27518 +secret=heslo2 +mtime=1411732260 +ctime=1411732260 + +[2:attribute0] +name=url +type=string +value=mongodb://127.0.0.1:27518 + +[2:attribute1] +name=username +type=string +value=client-tester + +[1] +item-type=0 +display-name=Thermostat auth info for: client-tester@http://127.0.0.1:8080/thermostat/storage +secret=heslo2 +mtime=1411732163 +ctime=1411732163 + +[1:attribute0] +name=url +type=string +value=http://127.0.0.1:8080/thermostat/storage + +[1:attribute1] +name=username +type=string +value=client-tester diff -r 308d55883a24 -r e8ad3e5e4893 storageconfig/keyrings/default --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/storageconfig/keyrings/default Wed Oct 22 16:42:56 2014 +0200 @@ -0,0 +1,1 @@ +Default \ No newline at end of file