Posts

Showing posts from January, 2017

Test cases of dup2() for radix tree__alloc_fd

I have written a test case of dup2() This is dup2() functionality test case. The dup2() makes newfd be the copy of oldfd, closing newfd first if necessary. This test case covers below scenarios   * Provide invalid file descriptor to dup2()   * Fill up all file descriptor table and try to duplicate a file descriptor using dup2().   * Using dup2() duplicate both file descriptor return by the pipe.   * Check inode number after passing newfd and oldfd to fstat(). inode number should be same. Upon successful execution this program will return zero value, otherwise, it will return -1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

Test cases of dup() for radix tree__alloc_fd

I have written the test case for dup( ). This is dup( ) functionality test case. The dup( ) use for duplicate the file descriptor. This test case covers below different scenarios: * Duplicate file descriptor five times one by one. * Fill up all file descriptor table and try to duplicate a file descriptor. dup( ) should not be succeeded. * Give invalid file descriptor to the dup( ). dup( ) should be failed. * Check inode number after passing newfd and oldfd to fstat( ). inode number should be same.  Upon successful execution this program will return zero value, otherwise, it will return -1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

Threaded test case for radix tree __alloc_fd

The purpose of this test cases is to stress the locking inside the kernel. All threads share a common file descriptor table. As each thread opens and closes its file descriptors, it must ensure that other threads do not interfere. So if we have many threads running, simultaneously opening and closing file descriptors, we’re trying to provoke a crash, or a corruption, or some other bad behavior by the kernel. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <errno.h> #include <pthread.h> #define NUM_THREADS 12 #define BUF_SIZE 1024 void * fd_task(void * arg) { int fd, err = 0 ; int ret; char buf[BUF_SIZE]; fd = open ( “ / etc / passwd ” ,O_RDONLY); if (fd == - 1 ) { printf( “ open failed … \n ” ); } ret = read(fd, buf, 1024

About me...

Hello,     My name is Sandhya Bankar, recently finished my internship with The Linux Foundation as Outreachy intern. I am Open Source enthusiast who is passionate about to learn and explore the Linux kernel. It is a fun to work and enjoy bit more.  I was the Linux kernel Interned through Outreachy in Round 13. I have just completed Outreachy Internship ( https://wiki.gnome.org/Outreachy/2016/DecemberMarch ). Outreachy is hosted by Software Freedom Conservancy with special support from Red Hat and the GNOME Foundation for Women in technology to support women participating in free and open source software since contributors to free and open source projects have mostly been men. I have been selected for the project "radix tree __alloc_fd" under the guidance of mentor Matthew Wilcox and Rik Van Riel. I got amazing support through the mentor for the __alloc_fd project. Specific about the project, I have worked for patchset of the IDR (integer ID management). IDR is lik