Skip to content

Commit

Permalink
Fix mmap test case to handle invalid flags scenario correctly (#22)
Browse files Browse the repository at this point in the history
* change to latest fdtables

* using newest fdtables

* mmap debug

* mmap debug

* mmap debug

* porting test suite

* porting test suite

* Add more detailed comments

* Fix directory cleanup issue in ut_lind_fs_mmap_invalid_flags_both test case (#16)

* fix: ut_lind_fs_chdir_removeddir

* fix: add syscalls

* fix: revert changes

* fix: testing subdir1

* fix: testing without i32

* fix: revert to mkdir

* fix: test with if

* fix: revert

* debug: added print

* debug: added print

* fix: print

* fix: revert println

* feat: return invalid

* fix: revert removed return

* feat: update rm subdir1 subdir2

* refactor: update comments

* fix: test case ut-lind-fs-mmap-invalid-flags-both

* feat: updated comment

* Squashed commit of the following:

commit e44f2c0
Author: Alice Wen <[email protected]>
Date:   Tue Oct 8 14:58:46 2024 -0400

    Update README.md

commit e244b91
Author: Chinmay Shringi <[email protected]>
Date:   Tue Oct 8 14:55:53 2024 -0400

    Feat update readme (#49)

    * feat: update readme

    * feat: added images

commit ebff6b7
Author: Alice Wen <[email protected]>
Date:   Tue Oct 1 13:21:00 2024 -0400

    Porting newest version fdtables and Synchronize the progress of porting test suite (#14)

    * change to latest fdtables

    * using newest fdtables

    * mmap debug

    * mmap debug

    * mmap debug

    * porting test suite

    * porting test suite

    * Add more detailed comments

    * Fix directory cleanup issue in ut_lind_fs_mmap_invalid_flags_both test case (#16)

    * fix: ut_lind_fs_chdir_removeddir

    * fix: add syscalls

    * fix: revert changes

    * fix: testing subdir1

    * fix: testing without i32

    * fix: revert to mkdir

    * fix: test with if

    * fix: revert

    * debug: added print

    * debug: added print

    * fix: print

    * fix: revert println

    * feat: return invalid

    * fix: revert removed return

    * feat: update rm subdir1 subdir2

    * refactor: update comments

    * fix: test case ut-lind-fs-fchdir-invalid-args

    * Fix out-of-range file descriptor error in `getdents` syscall (#17)

    * Fix: out-of-range file descriptor handling in getdents syscall

    * fix: update comment

    * Update src/fdtables/dashmapvecglobal.rs

    Co-authored-by: Justin Cappos <[email protected]>

    ---------

    Co-authored-by: lind <[email protected]>
    Co-authored-by: Justin Cappos <[email protected]>

    * Fix `getcwd_syscall` to Handle Invalid Arguments and Correctly Set `errno` (#24)

    * fix: test case ut_lind_fs_getcwd_invalid_args

    * fix: PR comments

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix mmap test case to handle invalid flags scenario correctly (#18)

    * Fix: mmap test to validate EINVAL for invalid flags

    * fix: PR comments

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix Test `ut_lind_fs_pread_from_directory` from Directory to Return Correct Error (#27)

    * fix: test case ut_lind_fs_pread_from_directory

    * fix: add rmdir syscall

    ---------

    Co-authored-by: lind <[email protected]>

    * fix: test case ut-lind-fs-write-to-directory (#19)

    Co-authored-by: lind <[email protected]>

    * fix: ut-lind-fs-simple (#21)

    Co-authored-by: lind <[email protected]>

    * Fix `ut_lind_fs_rmdir_nowriteperm_parent_dir` rmdir Nowrite Permission Handling and Recursive Directory Cleanup (#28)

    * fix: test case ut_lind_fs_rmdir_nowriteperm_parent_dir

    * feat: added cleanup

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix ut lind fs mkdir nonexisting directory (#25)

    * fix: test case ut_lind_fs_mkdir_nonexisting_directory

    * feat: added rmdir_recursive_syscall

    * fix: rm unecessary function

    * feat: updated comment

    * feat: updated values

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix EISDIR Error in `ut_lind_fs_getdents_bufsize_too_small` Test by Adjusting Directory Open Flags (#29)

    * fix: test case ut_lind_fs_getdents_bufsize_too_small

    * fix: rmdir for clean env

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix EEXIST Error in `ut_lind_fs_close_directory` Test by Removing Existing Directories Before Creation (#31)

    * fix: test case ut_lind_fs_close_directory

    * feat: use rmdir

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix EEXIST Error in `ut_lind_fs_dir_multiple` Test by Removing Existing Directories Before Creation (#32)

    * fix: test case ut_lind_fs_dir_multiple

    * feat: updated to rmdir

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix EEXIST Error in `ut_lind_fs_dir_mode` Test by Removing Existing Directories Before Creation (#30)

    * fix: test case ut_lind_fs_dir_mode

    * fix: cleanup the enviornment

    ---------

    Co-authored-by: lind <[email protected]>

    * Fix EEXIST Error in `ut_lind_fs_unlink_directory`  (#34)

    * fix: test case ut_lind_fs_rmdir_nonexist_dir (#36)

    * fix: test case ut_lind_fs_rmdir_nonempty_dir (#37)

    * fix: test case ut_lind_fs_link_directory (#38)

    * fix: test case ut_lind_fs_read_from_directory (#39)

    * fix: test case ut_lind_fs_rename (#41)

    * Fix in `ut_lind_fs_tmp_file_test` ensure /tmp Directory Is Properly Set Up and Cleaned  (#35)

    * fix: test case ut_lind_fs_read_from_chardev_file (#44)

    Co-authored-by: lind <[email protected]>

    ---------

    Co-authored-by: Chinmay Shringi <[email protected]>
    Co-authored-by: lind <[email protected]>
    Co-authored-by: Nicholas Renner <[email protected]>
    Co-authored-by: Justin Cappos <[email protected]>

* feat: revert rm line

* feat: updated lib mmap with match

---------

Co-authored-by: Alice W. <[email protected]>
Co-authored-by: lind <[email protected]>
  • Loading branch information
3 people authored Oct 22, 2024
1 parent 5d322f4 commit 1e4fe90
Showing 1 changed file with 21 additions and 10 deletions.
31 changes: 21 additions & 10 deletions src/tests/fs_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -458,21 +458,32 @@ pub mod fs_tests {
//Writing into that file's first 9 bytes.
assert_eq!(cage.write_syscall(fd, str2cbuf("Test text"), 9), 9);

//Checking if passing both `MAP_PRIVATE`
//and `MAP_SHARED` flags correctly results in `The value
//of flags is invalid (`MAP_PRIVATE` and `MAP_SHARED`
//cannot be both set)` error.
assert!(
cage.mmap_syscall(
0 as *mut u8,
// Trying to mmap with both `MAP_PRIVATE` and `MAP_SHARED` flags.
let mmap_result = unsafe {
libc::mmap(
0 as *mut c_void,
5,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_SHARED,
fd,
0
) < 0
);

)
};

// Check the result of mmap and get the error if it failed.
assert_eq!(mmap_result, libc::MAP_FAILED, "mmap did not fail as expected");
if mmap_result == libc::MAP_FAILED {
let errno_val = get_errno();
match errno_val {
libc::EINVAL => assert_eq!(errno_val, libc::EINVAL, "EINVAL error for invalid mmap flags"),
libc::ENOENT => assert_eq!(errno_val, libc::ENOENT, "No such file or directory"),
libc::EISDIR => assert_eq!(errno_val, libc::EISDIR, "Is a directory"),
libc::ENODEV => assert_eq!(errno_val, libc::ENODEV, "No such device"),
_ => panic!("Unexpected error code: {}", errno_val),
}
}
// Clean up and finalize
assert_eq!(cage.unlink_syscall(filepath), 0);
assert_eq!(cage.exit_syscall(libc::EXIT_SUCCESS), libc::EXIT_SUCCESS);
lindrustfinalize();
}
Expand Down

0 comments on commit 1e4fe90

Please sign in to comment.