{"action":"opened","issue":{"url":"https://api.github.com/repos/DevExpress/testcafe/issues/3272","repository_url":"https://api.github.com/repos/DevExpress/testcafe","labels_url":"https://api.github.com/repos/DevExpress/testcafe/issues/3272/labels{/name}","comments_url":"https://api.github.com/repos/DevExpress/testcafe/issues/3272/comments","events_url":"https://api.github.com/repos/DevExpress/testcafe/issues/3272/events","html_url":"https://github.com/DevExpress/testcafe/issues/3272","id":394992728,"node_id":"MDU6SXNzdWUzOTQ5OTI3Mjg=","number":3272,"title":"Concurrent tests hang in Chromium on Docker","user":{"login":"kkulak","id":5836832,"node_id":"MDQ6VXNlcjU4MzY4MzI=","avatar_url":"https://avatars2.githubusercontent.com/u/5836832?v=4","gravatar_id":"","url":"https://api.github.com/users/kkulak","html_url":"https://github.com/kkulak","followers_url":"https://api.github.com/users/kkulak/followers","following_url":"https://api.github.com/users/kkulak/following{/other_user}","gists_url":"https://api.github.com/users/kkulak/gists{/gist_id}","starred_url":"https://api.github.com/users/kkulak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkulak/subscriptions","organizations_url":"https://api.github.com/users/kkulak/orgs","repos_url":"https://api.github.com/users/kkulak/repos","events_url":"https://api.github.com/users/kkulak/events{/privacy}","received_events_url":"https://api.github.com/users/kkulak/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-31T15:07:20Z","updated_at":"2018-12-31T15:07:20Z","closed_at":null,"author_association":"NONE","body":"### What is your Test Scenario?\r\nI'm trying to run concurrent tests in Chromium on Docker. \r\n \r\n### What is the Current behaviour?\r\nTest execution is measured in minutes, instead of seconds. The same test run against locally installed testcafe last ~10 seconds. \r\n \r\n### What is the Expected behavior?\r\nExecution time is similar to the one experienced on locally installed testcafe.\r\n \r\n### What is your web application and your TestCafe test code?\r\nFor the reproduction purposes, I'm using the code sample from your repository: https://devexpress.github.io/testcafe/example/.\r\n\r\ntest.js\r\n```js\r\n import Page from './page-model';\r\n\r\nfixture `A set of examples that illustrate how to use TestCafe API`\r\n    .page `https://devexpress.github.io/testcafe/example/`;\r\n\r\n// Page model\r\nconst page = new Page();\r\n\r\n// Tests\r\ntest('Text typing basics', async t => {\r\n    await t\r\n        .typeText(page.nameInput, 'Peter') // Type name\r\n        .typeText(page.nameInput, 'Paker', { replace: true }) // Replace with last name\r\n        .typeText(page.nameInput, 'r', { caretPos: 2 }) // Correct last name\r\n        .expect(page.nameInput.value).eql('Parker'); // Check result\r\n});\r\n\r\n\r\ntest('Click an array of labels and then check their states', async t => {\r\n    for (const feature of page.featureList) {\r\n        await t\r\n            .click(feature.label)\r\n            .expect(feature.checkbox.checked).ok();\r\n    }\r\n});\r\n\r\n\r\ntest('Dealing with text using keyboard', async t => {\r\n    await t\r\n        .typeText(page.nameInput, 'Peter Parker') // Type name\r\n        .click(page.nameInput, { caretPos: 5 }) // Move caret position\r\n        .pressKey('backspace') // Erase a character\r\n        .expect(page.nameInput.value).eql('Pete Parker') // Check result\r\n        .pressKey('home right . delete delete delete') // Pick even shorter form for name\r\n        .expect(page.nameInput.value).eql('P. Parker'); // Check result\r\n});\r\n\r\n\r\ntest('Moving the slider', async t => {\r\n    const initialOffset = await page.slider.handle.offsetLeft;\r\n\r\n    await t\r\n        .click(page.triedTestCafeCheckbox)\r\n        .dragToElement(page.slider.handle, page.slider.tick.withText('9'))\r\n        .expect(page.slider.handle.offsetLeft).gt(initialOffset);\r\n});\r\n\r\n\r\ntest('Dealing with text using selection', async t => {\r\n    await t\r\n        .typeText(page.nameInput, 'Test Cafe')\r\n        .selectText(page.nameInput, 7, 1)\r\n        .pressKey('delete')\r\n        .expect(page.nameInput.value).eql('Tfe'); // Check result\r\n});\r\n\r\n\r\ntest('Handle native confirmation dialog', async t => {\r\n    await t\r\n        .setNativeDialogHandler(() => true)\r\n        .click(page.populateButton);\r\n\r\n    const dialogHistory = await t.getNativeDialogHistory();\r\n\r\n    await t.expect(dialogHistory[0].text).eql('Reset information before proceeding?');\r\n\r\n    await t\r\n        .click(page.submitButton)\r\n        .expect(page.results.innerText).contains('Peter Parker');\r\n});\r\n\r\n\r\ntest('Pick option from select', async t => {\r\n    await t\r\n        .click(page.interfaceSelect)\r\n        .click(page.interfaceSelectOption.withText('Both'))\r\n        .expect(page.interfaceSelect.value).eql('Both');\r\n});\r\n\r\n\r\ntest('Filling a form', async t => {\r\n    // Fill some basic fields\r\n    await t\r\n        .typeText(page.nameInput, 'Bruce Wayne')\r\n        .click(page.macOSRadioButton)\r\n        .click(page.triedTestCafeCheckbox);\r\n\r\n    // Let's leave a comment...\r\n    await t\r\n        .typeText(page.commentsTextArea, \"It's...\")\r\n        .wait(500)\r\n        .typeText(page.commentsTextArea, '\\ngood');\r\n\r\n    // I guess, I've changed my mind\r\n    await t\r\n        .wait(500)\r\n        .selectTextAreaContent(page.commentsTextArea, 1, 0)\r\n        .pressKey('delete')\r\n        .typeText(page.commentsTextArea, 'awesome!!!');\r\n\r\n    // Let's submit our form\r\n    await t\r\n        .wait(500)\r\n        .click(page.submitButton)\r\n        .expect(page.results.innerText).contains('Bruce Wayne');\r\n});\r\n```\r\n\r\npage-model.js\r\n```js\r\nimport { Selector } from 'testcafe';\r\n\r\nconst label = Selector('label');\r\n\r\nclass Feature {\r\n    constructor (text) {\r\n        this.label    = label.withText(text);\r\n        this.checkbox = this.label.find('input[type=checkbox]');\r\n    }\r\n}\r\n\r\nexport default class Page {\r\n    constructor () {\r\n        this.nameInput             = Selector('#developer-name');\r\n        this.triedTestCafeCheckbox = Selector('#tried-test-cafe');\r\n        this.populateButton        = Selector('#populate');\r\n        this.submitButton          = Selector('#submit-button');\r\n        this.results               = Selector('.result-content');\r\n        this.macOSRadioButton      = Selector('input[type=radio][value=MacOS]');\r\n        this.commentsTextArea      = Selector('#comments');\r\n\r\n        this.featureList = [\r\n            new Feature('Support for testing on remote devices'),\r\n            new Feature('Re-using existing JavaScript code for testing'),\r\n            new Feature('Easy embedding into a Continuous integration system')\r\n        ];\r\n\r\n        this.slider = {\r\n            handle: Selector('.ui-slider-handle'),\r\n            tick:   Selector('.slider-value')\r\n        };\r\n\r\n        this.interfaceSelect       = Selector('#preferred-interface');\r\n        this.interfaceSelectOption = this.interfaceSelect.find('option');\r\n    }\r\n}\r\n```\r\n\r\n</details>\r\n\r\n### Steps to Reproduce:\r\n\r\nDocker:\r\n1. Create files test.js and page-model.js\r\n3. Type the following command in the terminal\r\n```sh\r\ndocker run --shm-size=1g -v $(pwd):/tests -it testcafe/testcafe 'chromium --no-sandbox -c 2' /tests/test.js\r\n```\r\n3. See the hanged test (the test completes successfully, but its execution time is measured in minutes)\r\n\r\nLocally:\r\n1. As above\r\n2. Type the following command in the terminal\r\n```sh\r\ntestcafe chrome -c 2 test.js\r\n```\r\n3. The test is completed within 10 seconds\r\n\r\n### Your Environment details:\r\n \r\n* testcafe version: 0.23.0 - locally, 0.23.2 - docker      <!-- run `testcafe -v` -->\r\n* node.js version: v10.6.0 - locally, v10.13.0 - docker        <!-- run `node -v` -->\r\n* command-line arguments: as above <!-- example: \"testcafe ie,chrome -e test.js\" -->\r\n* browser name and version: Chrome 71.0.3578 / Mac OS X 10.14.0 - locally, Chrome 68.0.3440 / Linux 0.0.0 - docker\r\n\r\nBTW, happy New Year!"}}
{"actor":{"display_login":"kkulak"}}