[ros-diffs] [cwittich] 35881: -hackfix 2nd and 3rd stage (setting boot dev to cdrom) -test all three stages -return the status (fail|success) in ProcessDebugData

cwittich at svn.reactos.org cwittich at svn.reactos.org
Wed Sep 3 14:39:00 CEST 2008


Author: cwittich
Date: Tue Sep  2 16:30:18 2008
New Revision: 35881

URL: http://svn.reactos.org/svn/reactos?rev=35881&view=rev
Log:
-hackfix 2nd and 3rd stage (setting boot dev to cdrom)
-test all three stages
-return the status (fail|success) in ProcessDebugData

Modified:
    trunk/tools/sysreg2/console.c
    trunk/tools/sysreg2/sysreg.h
    trunk/tools/sysreg2/virt.c

Modified: trunk/tools/sysreg2/console.c
URL: http://svn.reactos.org/svn/reactos/trunk/tools/sysreg2/console.c?rev=35881&r1=35880&r2=35881&view=diff
==============================================================================
--- trunk/tools/sysreg2/console.c [iso-8859-1] (original)
+++ trunk/tools/sysreg2/console.c [iso-8859-1] Tue Sep  2 16:30:18 2008
@@ -2,19 +2,20 @@
 #include <termios.h>
 #include <poll.h>
 
-void ProcessDebugData(const char* tty, int timeout, int stage )
+bool ProcessDebugData(const char* tty, int timeout, int stage )
 {
     int ttyfd, i;
     struct termios ttyattr, rawattr;
+    bool Ret = true;
 
     if ((ttyfd = open(tty, O_NOCTTY | O_RDWR)) < 0)
     {
         printf("error opening tty\n");
-        return;
+        return false;
     }
 
     if (tcgetattr(STDIN_FILENO, &ttyattr) < 0)
-       return;
+       return false;
 
     rawattr = ttyattr;
     rawattr.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP
@@ -25,7 +26,7 @@
     rawattr.c_cflag |= CS8;
 
     if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawattr) < 0)
-        return;
+        return false;
 
     while (1)
     { 
@@ -46,6 +47,7 @@
         {
             /* timeout */
             printf("timeout\n");
+            Ret = false;
             goto cleanup;
         }
 
@@ -59,10 +61,13 @@
                 int got, sent = 0;
 
                 got = read(fds[i].fd, buf, sizeof(buf));
-                if (got < 0)
+                if (got < 0) {
                     goto cleanup;
+                }
                 if (!got || got == 1 && buf[0] == '\33')
+                {
                     goto cleanup;
+                }
 
                 if (fds[i].fd != STDIN_FILENO)
                 {
@@ -72,6 +77,7 @@
                         if ((done = safewrite(STDOUT_FILENO, 
                                         buf + sent, got -sent)) <= 0)
                         {
+                            Ret = false;
                             goto cleanup;
                         }
                         sent += done;
@@ -86,7 +92,6 @@
 cleanup:
     tcsetattr(STDIN_FILENO, TCSAFLUSH, &ttyattr);
     close(ttyfd);
-
-
+    return Ret;
 }
 

Modified: trunk/tools/sysreg2/sysreg.h
URL: http://svn.reactos.org/svn/reactos/trunk/tools/sysreg2/sysreg.h?rev=35881&r1=35880&r2=35881&view=diff
==============================================================================
--- trunk/tools/sysreg2/sysreg.h [iso-8859-1] (original)
+++ trunk/tools/sysreg2/sysreg.h [iso-8859-1] Tue Sep  2 16:30:18 2008
@@ -33,4 +33,4 @@
 bool LoadSettings(const char* XmlConfig);
 
 /* console.c */	
-void  ProcessDebugData(const char* tty, int timeout, int stage);  
+bool  ProcessDebugData(const char* tty, int timeout, int stage);  

Modified: trunk/tools/sysreg2/virt.c
URL: http://svn.reactos.org/svn/reactos/trunk/tools/sysreg2/virt.c?rev=35881&r1=35880&r2=35881&view=diff
==============================================================================
--- trunk/tools/sysreg2/virt.c [iso-8859-1] (original)
+++ trunk/tools/sysreg2/virt.c [iso-8859-1] Tue Sep  2 16:30:18 2008
@@ -56,7 +56,7 @@
         return false;
     
     numids = virConnectListDomains(vConn, &ids[0], maxids);
-    if (numids > -1)	
+    if (numids > -1)    
     {
         int i;
         for(i=0; i<numids; i++)
@@ -139,17 +139,18 @@
 {
     virConnectPtr vConn;
     virDomainPtr vDom;
-	virDomainInfo info;
+    virDomainInfo info;
     int Stage;
-    int Stages = 1; /* 1 for testing, should be set to 3 later */ 
+    int Stages = 3;
     char qemu_img_cmdline[300];
     FILE* file;
-	char config[255];
-
-	if (argc == 2)
-		strcpy(config, argv[1]);
-	else
-		strcpy(config, "sysreg.xml");
+    char config[255];
+    int Ret = EXIT_SUCCESS;
+
+    if (argc == 2)
+        strcpy(config, argv[1]);
+    else
+        strcpy(config, "sysreg.xml");
 
     if (!LoadSettings(config))
     {
@@ -189,20 +190,31 @@
         {
             if (vDom)
             {
+                if (Stage > 0)
+                    printf("\n\n\n\n\n");
+                printf("Running stage %d...\n", Stage + 1);
                 printf("Domain %s started.\n", virDomainGetName(vDom));
-                ProcessDebugData(GetConsole(vDom), 
-                                 AppSettings.Timeout, Stage);
-
-				virDomainGetInfo(vDom, &info);
-				if (info.state != VIR_DOMAIN_SHUTOFF)
+                if (!ProcessDebugData(GetConsole(vDom), 
+                                 AppSettings.Timeout, Stage))
+                {
+                    Ret = EXIT_FAILURE;
+                }
+                virDomainGetInfo(vDom, &info);
+                if (info.state != VIR_DOMAIN_SHUTOFF)
                     virDomainDestroy(vDom);
                 virDomainUndefine(vDom);
                 virDomainFree(vDom);
+                if (Ret == EXIT_FAILURE)
+                    break;
             }
-        }	
+        }   
     }
 
     virConnectClose(vConn);
-    return EXIT_SUCCESS;
-}
-
+    if (Ret == EXIT_SUCCESS)
+        printf("Test succeeded!\n");
+    else
+        printf("Test failed!\n");
+    return Ret;
+}
+



More information about the Ros-diffs mailing list