Skip to content
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

chmod test fails on WSL #1123

Open
SinisterRectus opened this issue Oct 3, 2020 · 0 comments
Open

chmod test fails on WSL #1123

SinisterRectus opened this issue Oct 3, 2020 · 0 comments
Labels

Comments

@SinisterRectus
Copy link
Member

Tested on Windows 10 64-bit WSL2 Ubuntu 18.04.1 LTS.

sinister@DESKTOP-SB6R31A:/mnt/c/Users/Sinister/Desktop/luvit$ ./luvi . -- tests/test-fs-chmod.lua
1..1

# Starting Test: fs chmod
  /mnt/c/Users/Sinister/Desktop/luvit/tests/libs/tap.lua:81: /mnt/c/Users/Sinister/Desktop/luvit/tests/test-fs-chmod.lua:82: assertion failed!
  stack traceback:
        [C]: in function 'error'
        /mnt/c/Users/Sinister/Desktop/luvit/tests/libs/tap.lua:81: in function </mnt/c/Users/Sinister/Desktop/luvit/tests/libs/tap.lua:64>
        [C]: in function 'xpcall'
        /mnt/c/Users/Sinister/Desktop/luvit/tests/libs/tap.lua:64: in function 'run'
        /mnt/c/Users/Sinister/Desktop/luvit/tests/libs/tap.lua:165: in function </mnt/c/Users/Sinister/Desktop/luvit/tests/libs/tap.lua:142>
        /mnt/c/Users/Sinister/Desktop/luvit/tests/test-fs-chmod.lua:19: in function 'fn'
        [string "bundle:deps/require.lua"]:310: in function 'require'
        /mnt/c/Users/Sinister/Desktop/luvit/main.lua:128: in function 'main'
        /mnt/c/Users/Sinister/Desktop/luvit/init.lua:49: in function </mnt/c/Users/Sinister/Desktop/luvit/init.lua:47>
        [C]: in function 'xpcall'
        /mnt/c/Users/Sinister/Desktop/luvit/init.lua:47: in function 'fn'
        [string "bundle:deps/require.lua"]:310: in function <[string "bundle:deps/require.lua"]:266>
not ok 1 fs chmod
#1 failed test

This does not fail on Windows itself or on native Ubuntu 16.04. I haven't tested it on native Ubuntu 18.04.

The relevant code is:

        if is_windows then
          assert(maskMode(maskMode(fs.fstatSync(fd).mode), mode_sync))
        else
          assert(mode_sync == maskMode(fs.fstatSync(fd).mode))
        end

On Windows:

  is_windows    true
  mode_sync     438
  fs.fstatSync(fd).mode 33206
  maskMode(fs.fstatSync(fd).mode)       438
  maskMode(maskMode(fs.fstatSync(fd).mode), mode_sync)  438

On WSL:

  is_windows    false
  mode_sync     420
  fs.fstatSync(fd).mode 33279
  maskMode(fs.fstatSync(fd).mode)       511
  maskMode(maskMode(fs.fstatSync(fd).mode), mode_sync)  420

On native Linux:

  is_windows    false
  mode_sync     420
  fs.fstatSync(fd).mode 33188
  maskMode(fs.fstatSync(fd).mode)       420
  maskMode(maskMode(fs.fstatSync(fd).mode), mode_sync)  420

I'm guessing it has something to do with "On Windows chmod is only able to manipulate read-only bit"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant