onepub-dev / dart_posix

MIT License
12 stars 4 forks source link

Set up CI #9

Closed jpnurmi closed 2 years ago

jpnurmi commented 2 years ago

grp_test

Available groups in the GitHub Actions container:

pwd_test

Fails on macOS:

00:10 +12 ~3 -1: test/src/pwd_test.dart: pwd ... [E]                                                                                                                                                   
  Unsupported operation: Operation 'toDartString' not allowed on a 'nullptr'.
  package:ffi/src/utf8.dart 62:7                 Utf8Pointer._ensureNotNullptr
  package:ffi/src/utf8.dart 42:5                 Utf8Pointer.toDartString
  package:posix/src/util/conversions.dart 46:36  copyCBuffToDartString
  package:posix/src/pwd.dart 275:20              _buildPasswd
  package:posix/src/pwd.dart 123:18              getpwnam
  test/src/pwd_test.dart 8:18                    main.<fn>
  test/src/pwd_test.dart 7:19                    main.<fn>

Possibly because of a memory layout mismatch.

https://linux.die.net/man/3/getpwnam

struct passwd {
  char   *pw_name;       /* username */
  char   *pw_passwd;     /* user password */
  uid_t   pw_uid;        /* user ID */
  gid_t   pw_gid;        /* group ID */
  char   *pw_gecos;      /* user information */
  char   *pw_dir;        /* home directory */
  char   *pw_shell;      /* shell program */
};

vs.

https://www.freebsd.org/cgi/man.cgi?query=getpwnam

struct passwd {
  char     *pw_name;       /* user name */
  char     *pw_passwd;     /* encrypted password */
  uid_t   pw_uid;      /* user uid */
  gid_t   pw_gid;      /* user gid */
  time_t  pw_change;       /* password change time */
  char     *pw_class;      /* user access class */
  char     *pw_gecos;      /* Honeywell login info */
  char     *pw_dir;    /* home directory */
  char     *pw_shell;      /* default shell */
  time_t  pw_expire;       /* account expiration */
  int      pw_fields;      /* internal: fields filled in */
};

sysinfo_test

Fails on macOS:

00:10 +12 ~3 -1: loading test/src/sysinfo_test.dart                                                                                                                                                    
00:11 +12 ~3 -1: loading test/src/sysinfo_test.dart                                                                                                                                                    
00:11 +12 ~3 -1: test/src/sysinfo_test.dart: sysinfo                                                                                                                                                   
00:11 +12 ~3 -2: test/src/sysinfo_test.dart: sysinfo [E]                                                                                                                                               
  Invalid argument(s): Failed to lookup symbol 'sysinfo': dlsym(0x117949710, sysinfo): symbol not found
  dart:ffi                         DynamicLibrary.lookup
  package:posix/src/sysinfo.dart   sysinfo
  test/src/sysinfo_test.dart 6:18  main.<fn>
  test/src/sysinfo_test.dart 5:19  main.<fn>
jpnurmi commented 2 years ago

P.S. I've tested the CI with my fork: https://github.com/jpnurmi/dart_posix/pull/1