Commit a03831d8 authored by Jérome Perrin's avatar Jérome Perrin

seleniumserver: enable firefox 68.0.2esr

this is the firefox we are currently using on testnodes. It's useful to
be able to run test with exactly same version to debug issues.

/reviewed-on nexedi/slapos!646
parent 71128b63
Pipeline #6447 failed with stage
in 0 seconds
......@@ -19,4 +19,4 @@ md5sum = c4ac5de141ae6a64848309af03e51d88
[template-selenium]
filename = instance-selenium.cfg.in
md5sum = 4179c998a71bd87b0f0bd624d545071b
md5sum = 7c1a5a4f1a3916ddf3ec0db7b22ef820
......@@ -93,11 +93,17 @@ capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX
java-args = -Dwebdriver.gecko.driver=${geckodriver-0.22.0:location}
port = 7778
[selenium-server-node-instance-firefox-68]
<= selenium-server-node-instance
capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-68:version},firefox_binary=${firefox-wrapper-68:location}
java-args = -Dwebdriver.gecko.driver=${geckodriver-0.24.0:location}
port = 7779
[selenium-server-node-instance-chromium-69]
<= selenium-server-node-instance
capabilities = browserName=chrome,maxInstances=3,platform=LINUX,version=${chromium-69:version},chrome_binary=${chromium-wrapper-69:location}
java-args = -Dwebdriver.chrome.driver=${chromedriver-wrapper-2.41:location}
port = 7779
port = 7780
[selenium-server-admin-password]
......@@ -236,6 +242,7 @@ instance-promises =
$${selenium-server-hub-listen-promise:path}
$${selenium-server-node-firefox-52-listen-promise:path}
$${selenium-server-node-firefox-60-listen-promise:path}
$${selenium-server-node-firefox-68-listen-promise:path}
$${selenium-server-node-instance-chromium-69-listen-promise:path}
......@@ -268,6 +275,11 @@ port = $${selenium-server-node-instance-firefox-52:port}
hostname = $${selenium-server-node-instance-firefox-60:hostname}
port = $${selenium-server-node-instance-firefox-60:port}
[selenium-server-node-firefox-68-listen-promise]
<= check-port-listening-promise
hostname = $${selenium-server-node-instance-firefox-68:hostname}
port = $${selenium-server-node-instance-firefox-68:port}
[selenium-server-node-instance-chromium-69-listen-promise]
<= check-port-listening-promise
hostname = $${selenium-server-node-instance-chromium-69:hostname}
......
......@@ -401,6 +401,11 @@ class TestFirefox60(BrowserCompatibilityMixin, SeleniumServerTestCase):
user_agent = 'Gecko/20100101 Firefox/60.0'
class TestFirefox68(BrowserCompatibilityMixin, SeleniumServerTestCase):
desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='68.0.2esr')
user_agent = 'Gecko/20100101 Firefox/68.0'
class TestChrome69(BrowserCompatibilityMixin, SeleniumServerTestCase):
desired_capabilities = dict(DesiredCapabilities.CHROME, version='69.0.3497.0')
user_agent = 'Chrome/69.0.3497.0'
  • @luke I copied the snapshots of this test to https://[2001:67c:1254:57:c6e7::a2bd]:9080/cqc-wZuwZqkeca/snapshots/ and as a zip file https://[2001:67c:1254:57:c6e7::a2bd]:9080/cqc-wZuwZqkeca/snapshots.zip because it's more than 1Go in total ...

  • mentioned in merge request slapos.core!145 (merged)

    Toggle commit list
  • aah and when test fail during setUpClass we don't keep instance, because tear down is not called when setup failed. So we don't have anything left for slapos-master test 😞

  • @luke I copied the snapshots of this test to https://[2001:67c:1254:57:c6e7::a2bd]:9080/cqc-wZuwZqkeca/snapshots/ and as a zip file https://[2001:67c:1254:57:c6e7::a2bd]:9080/cqc-wZuwZqkeca/snapshots.zip because it's more than 1Go in total ...

    Can we by default compress the snapshots?

    aah and when test fail during setUpClass we don't keep instance, because tear down is not called when setup failed. So we don't have anything left for slapos-master test 😞

    Oh, that's why I had no snapshots in my branch :(

    So let's put the snapshot creation to _cleanup?

  • Can we by default compress the snapshots?

    Yes, but it's still 134Mo compressed and the plan is that in the end we can see these snapshots directly on http, so it's nice to keep individual files.

    I think we don't need to keep so many logs from slapos node software and instance, this is what is big. That configuration is not good for the case of tests. I did not think before setting this configuration. They are same the default values ( http://supervisord.org/configuration.html?highlight=stdout_logfile_maxbytes ). For tests, I feel the last 1Mo is enough, but there might be other use cases where we want more history of logs.

    How do you think about this ?

    • adding an option like "keep logs" in standalone.py, if it's false, we set stdout_logfile_maxbytes to 1MB and stdout_logfile_backups to 0
    • in testcase.py, setting keep logs to True if SLAPOS_TEST_VERBOSE is true

    We'll have to make the size of each snapshot smaller and maybe also remove duplicates, it's easy with https://pypi.org/project/fastdupes/

    import fastdupes
    import os
    
    fastdupes.out.write = lambda *args, **kw: None # disable output
    groups = fastdupes.find_dupes(['/tmp/snapshots/snapshots/'], exact=True)
    
    for f, dups in groups.items():
      dups.discard(f)
      for dup in dups:
        os.unlink(dup)
        os.link(f, dup)
    $ du -hs snapshots/
    3.1G    snapshots/
    $ find snapshots/ | sort > before
    $ python dedup.py
    $ du -hs snapshots/
    103M    snapshots/
    $ diff before <(find snapshots/ | sort)

    So let's put the snapshot creation to _cleanup?

    I see you started slapos.core!150 (merged) for this 👍

  • mentioned in merge request slapos.core!150 (merged)

    Toggle commit list
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment