See <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/changes>
Changes: [Julien Carsique <[email protected]>] NXBT-292 - IT tests should run against latest code and artifacts from IT build ------------------------------------------ [...truncated 3427 lines...] + perl -p -i -e 's/^#?nuxeo.db.min-pool-size=.*$/nuxeo.db.min-pool-size=10/g' <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> + set_key_value nuxeo.vcs.max-pool-size 50 + '[' -z <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> ']' + '[' 2 '!=' 2 ']' + key=nuxeo.vcs.max-pool-size + value=50 ++ grep -E '^#?nuxeo.vcs.max-pool-size=' <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> ++ wc -l + has_key=1 + '[' 1 = 0 ']' + perl -p -i -e 's/^#?nuxeo.vcs.max-pool-size=.*$/nuxeo.vcs.max-pool-size=50/g' <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> + set_key_value nuxeo.vcs.min-pool-size 10 + '[' -z <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> ']' + '[' 2 '!=' 2 ']' + key=nuxeo.vcs.min-pool-size + value=10 ++ grep -E '^#?nuxeo.vcs.min-pool-size=' <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> ++ wc -l + has_key=1 + '[' 1 = 0 ']' + perl -p -i -e 's/^#?nuxeo.vcs.min-pool-size=.*$/nuxeo.vcs.min-pool-size=10/g' <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> + cat + start_server 127.0.0.1 + '[' 1 == 2 ']' + IP=127.0.0.1 + check_ports_and_kill_ghost_process 127.0.0.1 + hostname=127.0.0.1 + ports='8080 14440' + for port in '$ports' ++ lsof -n -i [email protected]:8080 ++ grep '(LISTEN)' ++ awk '{print $2}' + RUNNING_PID= + '[' '!' -z ']' + for port in '$ports' ++ lsof -n -i [email protected]:14440 ++ awk '{print $2}' ++ grep '(LISTEN)' + RUNNING_PID= + '[' '!' -z ']' + <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeoctl> start Launcher command: java -Dlauncher.java.opts=-server -Xms1g -Xmx1g -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xloggc:${nuxeo.log.dir}/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dnuxeo.home=<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat> -Dnuxeo.conf=<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> -Dnuxeo.log.dir=<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/log> -jar <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo-launcher.jar> start Nuxeo home: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat> Nuxeo configuration: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> Include template: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/common> Include template: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/default> Include template: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/postgresql> Template 'monitor' not found with relative or absolute path (<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/monitor).> Check your nuxeo.templates parameter, and nuxeo.template.includes for included files. Detected Tomcat server. No current configuration, generating files... Configuration files generated. Server started with process ID 26709. .......................... ====================================================================== = Nuxeo EP Started ====================================================================== = Component Loading Status: Pending: 0 / Unstarted: 0 / Total: 450 ====================================================================== Started in 0min26s + sleep 0 + '[' '!' -z ']' + <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/monitorctl.sh> start <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/monitorctl.sh>: line 121: -server -Xms1g -Xmx1g -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xloggc:${nuxeo.log.dir}/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false: bad substitution Starting monitoring 2011-05-24 03:13:14+02:00 ... [26965] Monitoring started. + cd <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload> + make EXT=--no-color mkdir -p ../../target/ftest/funkload/report ../../target/ftest/funkload/log fl-monitor-ctl monitor.conf restart Starting monitor server at http://localhost:55502/ as daemon. fl-credential-ctl credential.conf restart Starting file_credential server at http://localhost:55501/ as daemon. fl-run-test test_pages.py --simple-fetch -v -e testAvailable --no-color testAvailable (test_pages.Pages) ... ok ---------------------------------------------------------------------- Ran 1 test in 7.530s OK fl-run-test -v --simple-fetch test_rest.py -e testWriter --no-color testWriter (test_rest.Rest) ... ok ---------------------------------------------------------------------- Ran 1 test in 1.605s OK fl-run-test -v --simple-fetch test_rest.py -e testReader --no-color testReader (test_rest.Rest) ... ok ---------------------------------------------------------------------- Ran 1 test in 0.390s OK fl-run-test -v --simple-fetch test_pages.py --no-color testAvailable (test_pages.Pages) ... ok testBasePageViewDocumentPath (test_pages.Pages) ... FAIL testFileTabs (test_pages.Pages) ... FAIL testFolderPage (test_pages.Pages) ... FAIL testLoginPage (test_pages.Pages) ... FAIL testNavigation (test_pages.Pages) ... FAIL testPublish (test_pages.Pages) ... FAIL testSections (test_pages.Pages) ... FAIL testUsersGroupsPage (test_pages.Pages) ... FAIL ====================================================================== FAIL: testBasePageViewDocumentPath (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 46, in testBasePageViewDocumentPath .login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ====================================================================== FAIL: testFileTabs (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 134, in testFileTabs p = (LoginPage(self).login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ====================================================================== FAIL: testFolderPage (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 114, in testFolderPage p = (LoginPage(self).login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ====================================================================== FAIL: testLoginPage (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 39, in testLoginPage .login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ====================================================================== FAIL: testNavigation (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 60, in testNavigation .login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ====================================================================== FAIL: testPublish (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 92, in testPublish p = (LoginPage(self).login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ====================================================================== FAIL: testSections (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 73, in testSections p = (LoginPage(self).login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ====================================================================== FAIL: testUsersGroupsPage (test_pages.Pages) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/funkload-1.16.0a_20110518-py2.6.egg/funkload/FunkLoadTestCase.py", line 944, in __call__ testMethod() File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/test_pages.py",> line 153, in testUsersGroupsPage p = LoginPage(self).login(*self.cred_admin) File "<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/nuxeo-5.4/nuxeo-distribution/nuxeo-distribution-dm/ftest/funkload/nuxeo/pages.py",> line 102, in login "User login not found on the welcome page") AssertionError: User login not found on the welcome page ---------------------------------------------------------------------- Ran 9 tests in 7.159s FAILED (failures=8) make: *** [page] Error 1 + ret1=2 + stop_server + SERVER_HOME=<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat> + <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/monitorctl.sh> stop <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/monitorctl.sh>: line 121: -server -Xms1g -Xmx1g -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xloggc:${nuxeo.log.dir}/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false: bad substitution Stopping monitoring 2011-05-24 03:13:46+02:00 ... Monitoring stopped. Archiving log ... tar: log/*.html: Cannot stat: No such file or directory tar: Exiting with failure status due to previous errors Done: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/log-20110524-011351.tgz> + <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeoctl> stop Launcher command: java -Dlauncher.java.opts=-server -Xms1g -Xmx1g -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xloggc:${nuxeo.log.dir}/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dnuxeo.home=<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat> -Dnuxeo.conf=<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> -Dnuxeo.log.dir=<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/log> -jar <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo-launcher.jar> stop Nuxeo home: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat> Nuxeo configuration: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/nuxeo.conf> Include template: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/common> Include template: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/default> Include template: <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/postgresql> Template 'monitor' not found with relative or absolute path (<https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/templates/monitor).> Check your nuxeo.templates parameter, and nuxeo.template.includes for included files. Stopping server.....Server stopped. + '[' '!' -z secret ']' + <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/monitorctl.sh> vacuumdb <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/ws/trunk/tomcat/bin/monitorctl.sh>: line 121: -server -Xms1g -Xmx1g -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xloggc:${nuxeo.log.dir}/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1089 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false: bad substitution Vacuuming qualiscope-ci-0 2011-05-24 03:13:54+02:00 ... Reindexing qualiscope-ci-0 2011-05-24 03:13:55+02:00 ... Done 2011-05-24 03:13:56+02:00 + echo '### 10 most frequent errors --------------' ### 10 most frequent errors -------------- + grep ' ERROR \[' <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/server.log> + sort + sort -nr + uniq -c + sed 's/^.\{24\}//g' + head + echo '### 10 first errors ----------------------' ### 10 first errors ---------------------- + grep -nTm 10 ' ERROR ' <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/server.log> + echo '### --------------------------------------' ### -------------------------------------- + gzip <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/console.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/gc.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/jmxstat.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/nuxeo-error.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/pgsql.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/reindexdb.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/server.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/stderr.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact /trunk/tomcat/log/sysstat-sar.log> <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/vacuum.log> + gzip -cd <https://qa.nuxeo.org/jenkins/job/FT-nuxeo-5.4-funkload-rest-and-web/2311/artifact/trunk/tomcat/log/server.log.gz> + '[' 2 -eq 0 ']' + exit 9 Archiving artifacts _______________________________________________ ECM-QA mailing list [email protected] http://lists.nuxeo.com/mailman/listinfo/ecm-qa
