ekibun/flutter_qjs

Crash while using in Unit-tests

fiFoFy opened this issue · 1 comments

Code:

import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_qjs/flutter_qjs.dart';

void main() {
  test('Simple test', () async {
    final engine = FlutterQjs()..dispatch();
    await engine.evaluate('42;');
  });
}

Output:

Invalid argument(s): Failed to load dynamic library (dlopen(test/build/Debug/libffiquickjs.dylib, 1): image not found)
dart:ffi                                    new DynamicLibrary.open
package:flutter_qjs/ffi.dart 56:30          qjsLib
package:flutter_qjs/ffi.dart                qjsLib
package:flutter_qjs/ffi.dart 101:19         _jsNewRuntime
package:flutter_qjs/ffi.dart                _jsNewRuntime
package:flutter_qjs/ffi.dart 128:12         jsNewRuntime
package:flutter_qjs/flutter_qjs.dart 45:11  FlutterQjs._ensureEngine
package:flutter_qjs/flutter_qjs.dart 118:5  FlutterQjs.evaluate
test/widget_test.dart 14:18                 main.<fn>
test/widget_test.dart 12:23                 main.<fn>

Invalid argument(s): Failed to load dynamic library (dlopen(test/build/Debug/libffiquickjs.dylib, 1): image not found)
dart:ffi                                    new DynamicLibrary.open
package:flutter_qjs/ffi.dart 56:30          qjsLib
package:flutter_qjs/ffi.dart                qjsLib
package:flutter_qjs/ffi.dart 101:19         _jsNewRuntime
package:flutter_qjs/ffi.dart                _jsNewRuntime
package:flutter_qjs/ffi.dart 128:12         jsNewRuntime
package:flutter_qjs/flutter_qjs.dart 45:11  FlutterQjs._ensureEngine
package:flutter_qjs/flutter_qjs.dart 118:5  FlutterQjs.evaluate
test/widget_test.dart 14:18                 main.<fn>
test/widget_test.dart 12:23                 main.<fn>

When I tried it on real device (not in Unit-tests) all works ok. Also, I used flutter_js library in Unit-tests it works fine.

Flutter Doctor result:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.7 19H15 darwin-x64, locale en-RU)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[!] Android Studio (version 4.1)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[!] IntelliJ IDEA Community Edition (version 2019.3.4)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.52.1)
[✓] Connected device (1 available)

! Doctor found issues in 2 categories.

You need to build dylib first before running unit test.

Please see flutter_qjs_test.dart for details.