Skip to content

test-fs-promises-write-optional-params does't check read bytes counts  #46144

Description

@dmitry-chukanov

Test

test-fs-promises-write-optional-params

Platform

Linux x64

Console output

No response

Build links

Additional information

There are several options in test-fs-promises-write-optional-params (at the file end) such as 'undefined', 'null', '{}' and so on. And for '{}' option we read 0 bytes in testValid() function and read buffer hasn't any changes after read. But all asserts in testValid() functions are OK, because 2 errors:

  1. No any assert for really read bytes (may be 0 or any other positive value). In the test string assert.ok(writeResult.bytesWritten >= readResult.bytesRead); is ok because 3>0
  2. Only one buffer without any resets after write is used for write/read operations. This buffer doesn't have any changes after read if 0 bytes was read and there are the same values that before write. So assert.deepStrictEqual(writeResult.buffer, readResult.buffer);is also ok, because both buffers are the same and because read doesn't make any changes in buffer if 0 bytes was read.

Activity

  1. added
    flaky-testIssues and PRs involving tests that fail intermittently in CI.
    on Jan 9, 2023
  2. added
    linuxIssues and PRs related to the Linux platform.
    on Jan 9, 2023
  3. dmitry-chukanov commented on Jan 10, 2023

    @dmitry-chukanov
    Author

    The same test behavior is for test-fs-write-optional-params

  4. added
    fsIssues and PRs related to file-system APIs and the fs module.
    and removed
    linuxIssues and PRs related to the Linux platform.
    on Jan 17, 2023
  5. LiviaMedeiros commented on Jan 17, 2023

    @LiviaMedeiros
    Member

    Thanks for catching this! The same also applies to test-fs-write-sync-optional-params.

    1. This part of test checks compatibility with read counterparts and for some combinations (e.g. { length: null }) we can't get equal bytesWritten and bytesRead, hence the "greater or equal" assertion. Assertion when there is an explicit length is indeed missing.
    2. There is an issue in these tests: when position == null, subsequent read starts from current file position rather than from beginning.

    Both errors should be fixed by linked PR, but suggestions or alternative PR are always welcome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    flaky-testIssues and PRs involving tests that fail intermittently in CI.fsIssues and PRs related to file-system APIs and the fs module.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions