Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / modules / canvaskit / tests / bazel / test_reporter.js
1 const REPORT_URL = '/gold_rpc/report';
2 const pngPrefx = 'data:image/png;base64,'
3
4 function reportCanvas(canvas, testname) {
5     testname = testname.replaceAll(' ', '_');
6     // toDataURL returns a base64 encoded string with a data prefix. We only
7     // want the PNG data itself, so we strip that off before submitting it.
8     const b64 = canvas.toDataURL('image/png')
9                       .substring(pngPrefx.length);
10     return fetch(REPORT_URL, {
11         method: 'POST',
12         mode: 'no-cors',
13         headers: {
14             'Content-Type': 'application/json',
15         },
16         body: JSON.stringify({
17             'b64_data': b64,
18             'name': testname,
19         })
20     }).then((resp) => {
21         expect(resp.status).toEqual(201); // StatusCreated
22         console.log(`${testname}: ${resp.statusText}`);
23     });
24 }
25
26 function reportError(done) {
27     return (e) => {
28         fail(e);
29         done();
30     };
31 }
32
33 // A wrapper to catch and print a stacktrace to the logs.
34 // Exceptions normally shows up in the browser console,
35 // but not in the logs that appear on the bots AND a thrown
36 // exception will normally cause a test to time out.
37 // This wrapper mitigates both those pain points.
38 function catchException(done, fn) {
39     return () => {
40         try {
41             fn()
42         } catch (e) {
43             console.log('Failed with the following error', e);
44             expect(e).toBeFalsy();
45             debugger;
46             done();
47         }
48         // We don't call done with finally because
49         // that would make the break the asynchronous nature
50         // of fn().
51     }
52 }