Diff markup
001 001
002 002
003 003
004 004
005 005
006 006
007 007
008 008
009 009
010 010
011 011
012 012
013 013
014 014
015 015
016 016
017 017
018 018
019 #include <libc.h> 019 #include <libc.h>
020 #include <debug.h> 020 #include <debug.h>
021 #include <drivers/devices.h> 021 #include <drivers/devices.h>
022 #include "fstest_utils.h" 022 #include "fstest_utils.h"
023 023
024 024
025 025
026 026
027 027
028 028
029 int main(void) !! 029 int main()
030 { 030 {
031 bochs_printf("init: Welcome in userland !\n" 031 bochs_printf("init: Welcome in userland !\n");
032 032
033 033
034 034
035 TEST_EXPECT_CONDITION(mkdir("/dev", S_IRWXAL 035 TEST_EXPECT_CONDITION(mkdir("/dev", S_IRWXALL), RETVAL == 0);
036 TEST_EXPECT_CONDITION(mknod("/dev/zero", S_I 036 TEST_EXPECT_CONDITION(mknod("/dev/zero", S_IRUSR | S_IWUSR,
037 S_IFCHR, SOS_CHA 037 S_IFCHR, SOS_CHARDEV_ZERO_MAJOR, SOS_CHARDEV_ZERO_MINOR), RETVAL == 0);
038 TEST_EXPECT_CONDITION(mknod("/dev/null", S_I 038 TEST_EXPECT_CONDITION(mknod("/dev/null", S_IRUSR | S_IWUSR,
039 S_IFCHR, SOS_CHA 039 S_IFCHR, SOS_CHARDEV_ZERO_MAJOR, SOS_CHARDEV_NULL_MINOR), RETVAL == 0);
040 TEST_EXPECT_CONDITION(mknod("/dev/kmem", S_I 040 TEST_EXPECT_CONDITION(mknod("/dev/kmem", S_IRUSR | S_IWUSR,
041 S_IFCHR, SOS_CHA 041 S_IFCHR, SOS_CHARDEV_MEM_MAJOR, SOS_CHARDEV_KMEM_MINOR), RETVAL == 0);
042 TEST_EXPECT_CONDITION(mknod("/dev/mem", S_IR 042 TEST_EXPECT_CONDITION(mknod("/dev/mem", S_IRUSR | S_IWUSR,
043 S_IFCHR, SOS_CHA 043 S_IFCHR, SOS_CHARDEV_MEM_MAJOR, SOS_CHARDEV_PHYSMEM_MINOR), RETVAL == 0);
044 TEST_EXPECT_CONDITION(mknod("/dev/tty", S_IR 044 TEST_EXPECT_CONDITION(mknod("/dev/tty", S_IRUSR | S_IWUSR,
045 S_IFCHR, SOS_CHA 045 S_IFCHR, SOS_CHARDEV_TTY_MAJOR, SOS_CHARDEV_CONSOLE_MINOR), RETVAL == 0);
046 TEST_EXPECT_CONDITION(mknod("/dev/ttyS", S_I 046 TEST_EXPECT_CONDITION(mknod("/dev/ttyS", S_IRUSR | S_IWUSR,
047 S_IFCHR, SOS_CHA 047 S_IFCHR, SOS_CHARDEV_TTY_MAJOR, SOS_CHARDEV_SERIAL_MINOR), RETVAL == 0);
048 048
049 TEST_EXPECT_CONDITION(mknod("/dev/hda", S_IR <<
050 S_IFBLK, SOS_BLO <<
051 TEST_EXPECT_CONDITION(mknod("/dev/hda1", S_I <<
052 S_IFBLK, SOS_BLO <<
053 TEST_EXPECT_CONDITION(mknod("/dev/hda2", S_I <<
054 S_IFBLK, SOS_BLO <<
055 TEST_EXPECT_CONDITION(mknod("/dev/hda3", S_I <<
056 S_IFBLK, SOS_BLO <<
057 TEST_EXPECT_CONDITION(mknod("/dev/hda4", S_I <<
058 S_IFBLK, SOS_BLO <<
059 TEST_EXPECT_CONDITION(mknod("/dev/hda5", S_I <<
060 S_IFBLK, SOS_BLO <<
061 TEST_EXPECT_CONDITION(mknod("/dev/hda6", S_I <<
062 S_IFBLK, SOS_BLO <<
063 TEST_EXPECT_CONDITION(mknod("/dev/hda7", S_I <<
064 S_IFBLK, SOS_BLO <<
065 TEST_EXPECT_CONDITION(mknod("/dev/hdb", S_IR <<
066 S_IFBLK, SOS_BLO <<
067 TEST_EXPECT_CONDITION(mknod("/dev/hdb1", S_I <<
068 S_IFBLK, SOS_BLO <<
069 <<
070 ls("/", 1, 1); 049 ls("/", 1, 1);
071 050
072 051
073 TEST_EXPECT_CONDITION(open("/dev/tty", O_RDW 052 TEST_EXPECT_CONDITION(open("/dev/tty", O_RDWR), RETVAL == 0);
074 TEST_EXPECT_CONDITION(open("/dev/tty", O_RDW 053 TEST_EXPECT_CONDITION(open("/dev/tty", O_RDWR), RETVAL == 1);
075 TEST_EXPECT_CONDITION(open("/dev/tty", O_RDW 054 TEST_EXPECT_CONDITION(open("/dev/tty", O_RDWR), RETVAL == 2);
076 055
077 if (fork() == 0) 056 if (fork() == 0)
078 exec ("shell"); 057 exec ("shell");
079 058
080 close (2); 059 close (2);
081 close (1); 060 close (1);
082 close (0); 061 close (0);
083 062
084 063
085 TEST_EXPECT_CONDITION(open("/dev/ttyS", O_RD 064 TEST_EXPECT_CONDITION(open("/dev/ttyS", O_RDWR), RETVAL == 0);
086 TEST_EXPECT_CONDITION(open("/dev/ttyS", O_RD 065 TEST_EXPECT_CONDITION(open("/dev/ttyS", O_RDWR), RETVAL == 1);
087 TEST_EXPECT_CONDITION(open("/dev/ttyS", O_RD 066 TEST_EXPECT_CONDITION(open("/dev/ttyS", O_RDWR), RETVAL == 2);
088 067
089 if (fork() == 0) 068 if (fork() == 0)
090 exec ("shell"); 069 exec ("shell");
091 070
092 close (2); 071 close (2);
093 close (1); 072 close (1);
094 close (0); 073 close (0);
095 <<
096 074
097 075
098 bochs_printf("init: The end\n"); 076 bochs_printf("init: The end\n");
099 return 0; 077 return 0;
100 } 078 }