]> git.sur5r.net Git - cc65/commitdiff
seek test: Test some additional error cases.
authorPatrick Pelletier <code@funwithsoftware.org>
Mon, 20 Aug 2018 17:53:35 +0000 (10:53 -0700)
committerOliver Schmidt <ol.sc@web.de>
Mon, 20 Aug 2018 20:24:48 +0000 (22:24 +0200)
testcode/lib/seek.c

index 59603a795ada1fab870f58f79c05db8919ffe853..200f344c28e087e268cd0e1e97743ce0efabc04e 100644 (file)
@@ -173,6 +173,35 @@ int main(int argc, char **argv)
     }
     else {
         printf("NOT OK, no error\n");
+        fclose(file);
+        return(1);
+    }
+
+    /* ProDOS on the Apple II only supports 24-bit file offsets,
+    ** so anything beyond that should be an error.  I don't know
+    ** about other platforms, but I'm guessing no 6502-based
+    ** operating systems support 32-bit offsets?
+    */
+    printf("seeking to position 2^24:\n\t");
+    pos = lseek(fd, 0x1000000L, SEEK_SET);
+    if (pos == -1) {
+        printf("Ok, error %s\n", strerror(errno));
+    }
+    else {
+        printf("NOT OK, returned %ld but expected -1\n", pos);
+        fclose(file);
+        return(1);
+    }
+
+    printf("trying invalid value for whence:\n\t");
+    pos = lseek(fd, 0L, 3);
+    if (pos == -1) {
+        printf("Ok, error %s\n", strerror(errno));
+    }
+    else {
+        printf("NOT OK, returned %ld but expected -1\n", pos);
+        fclose(file);
+        return(1);
     }
 
     fclose(file);