Skip to content

[3.14] gh-124621: Emscripten: Add smoke test for using pyrepl in Chrome (GH-137004) #137067

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: 3.14
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Tools/wasm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,17 @@ make a node application that "embeds" the interpreter instead of acting like the
CLI you will need to write your own alternative to `node_entry.mjs`.


### Running tests

After building, you can run the full test suite with:
```shell
./cross-build/wasm32-emscripten/build/python/python.sh -m test -uall
```
You can run the browser smoke test with:
```shell
./Tools/wasm/emscripten/browser_test/run_test.sh
```

### The Web Example

When building for Emscripten, the web example will be built automatically. It
Expand Down
4 changes: 4 additions & 0 deletions Tools/wasm/emscripten/browser_test/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules
test-results
playwright-report
test_log.txt
15 changes: 15 additions & 0 deletions Tools/wasm/emscripten/browser_test/index.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { test, expect } from '@playwright/test';

test('has title', async ({ page }) => {
await page.goto('/');

await expect(page).toHaveTitle("Emscripten PyRepl Example");
const xterm = await page.locator('css=#terminal');
await expect(xterm).toHaveText(/Python.*on emscripten.*Type.*for more information/);
const xtermInput = await page.getByRole('textbox');
await xtermInput.pressSequentially(`def f():\nprint("hello", "emscripten repl!")\n\n`);
await xtermInput.pressSequentially(`f()\n`);
await expect(xterm).toHaveText(/hello emscripten repl!/);

});

Loading
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy