You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by hi...@apache.org on 2007/01/23 14:41:34 UTC

svn commit: r499018 - in /harmony/enhanced/classlib/trunk/modules/portlib: ./ src/test/native/hyfile/ src/test/native/hyfile/shared/ src/test/native/hyfile/unix/ src/test/native/hyfile/windows/

Author: hindessm
Date: Tue Jan 23 05:41:32 2007
New Revision: 499018

URL: http://svn.apache.org/viewvc?view=rev&rev=499018
Log:
Adding simple hyfile.c tests to portlib.

Added:
    harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/
    harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/shared/
    harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/shared/hyfile.c   (with props)
    harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/unix/
    harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/unix/makefile
    harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/windows/
    harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/windows/makefile
Modified:
    harmony/enhanced/classlib/trunk/modules/portlib/build.xml

Modified: harmony/enhanced/classlib/trunk/modules/portlib/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/portlib/build.xml?view=diff&rev=499018&r1=499017&r2=499018
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/portlib/build.xml (original)
+++ harmony/enhanced/classlib/trunk/modules/portlib/build.xml Tue Jan 23 05:41:32 2007
@@ -135,6 +135,7 @@
         <make dir="${hy.portlib.src.test.native}/init/${hy.os.family}" />
         <make dir="${hy.portlib.src.test.native}/hyerror/${hy.os.family}" />
         <make dir="${hy.portlib.src.test.native}/hytime/${hy.os.family}" />
+        <make dir="${hy.portlib.src.test.native}/hyfile/${hy.os.family}" />
     </target>
 
     <target name="-run-native-tests" >
@@ -143,6 +144,7 @@
         <exec-native test="init" />
         <exec-native test="hyerror" />
         <exec-native test="hytime" />
+        <exec-native test="hyfile" />
 
         <antcall target="touch-errors-file" />
     </target>

Added: harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/shared/hyfile.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/shared/hyfile.c?view=auto&rev=499018
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/shared/hyfile.c (added)
+++ harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/shared/hyfile.c Tue Jan 23 05:41:32 2007
@@ -0,0 +1,165 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "hycomp.h"
+#include "hyport.h"
+#include "hythread.h"
+
+int main (int argc, char **argv, char **envp)
+{
+  HyPortLibrary hyportLibrary;
+  HyPortLibraryVersion portLibraryVersion;
+  IDATA fd;
+  IDATA bytes;
+  IDATA rc;
+  IDATA offset;
+  char buf[20];
+  I_64 length;
+
+  printf("hyfile:\n");
+
+  HYPORT_SET_VERSION (&portLibraryVersion, HYPORT_CAPABILITY_MASK);
+  if (0 != hyport_init_library (&hyportLibrary, &portLibraryVersion,
+                                sizeof (HyPortLibrary)))
+  {
+    fprintf(stderr, "portlib init failed\n");
+    return 1;
+  }
+
+  printf("  portlib initialized\n");
+
+  fd = hyportLibrary.file_open(&hyportLibrary, "hytest.tmp",
+                               HyOpenCreate | HyOpenWrite | HyOpenTruncate,
+                               0600);
+  printf("  fd = %d\n", fd);
+  if (!fd) {
+    fprintf(stderr, "Failed to open hytest.tmp for write\n");
+    exit(1);
+  }
+
+  bytes = hyportLibrary.file_write(&hyportLibrary, fd, (void*)"testing", 7);
+  printf("  hyfile_write wrote %d bytes\n", bytes);
+  if (bytes != 7) {
+    fprintf(stderr, "hyfile_write wrote %d bytes not %d\n", bytes, 7);
+    exit(1);
+  }
+
+  rc = hyportLibrary.file_write_text(&hyportLibrary, fd, "testing", 7);
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_write_text write failed\n");
+    exit(1);
+  }
+
+  hyportLibrary.file_printf(&hyportLibrary, fd, "%d%c%s\n", 1, '2', "3");
+  rc = hyportLibrary.file_sync(&hyportLibrary, fd);
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_sync failed\n");
+    exit(1);
+  }
+
+  rc = hyportLibrary.file_close(&hyportLibrary, fd);
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_close failed\n");
+    exit(1);
+  }
+
+  rc = hyportLibrary.file_move(&hyportLibrary, "hytest.tmp", "hytest.tmp2");
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_move failed\n");
+    exit(1);
+  }
+
+  fd = hyportLibrary.file_open(&hyportLibrary, "hytest.tmp2",
+                               HyOpenRead, 0000);
+  printf("  fd = %d\n", fd);
+  if (!fd) {
+    fprintf(stderr, "Failed to open hytest.tmp2 for read\n");
+    exit(1);
+  }
+
+  offset = hyportLibrary.file_seek(&hyportLibrary, fd, -11, HySeekEnd);
+  printf("  offset = %d\n", offset);
+  if (offset != 7) {
+    fprintf(stderr, "Failed to seek hytest.tmp2\n");
+    exit(1);
+  }
+
+  bytes = hyportLibrary.file_read(&hyportLibrary, fd, buf, 10);
+  printf("  bytes = %d\n", bytes);
+  buf[bytes] = '\0';
+  printf("  buf = %s\n", buf);
+  if (bytes != 10) {
+    fprintf(stderr, "Failed to read hytest.tmp2\n");
+    exit(1);
+  }
+
+  if (strcmp(buf, "testing123") != 0) {
+    fprintf(stderr, "Failed to read correct content from hytest.tmp2\n");
+    exit(1);
+  }
+
+  rc = hyportLibrary.file_close(&hyportLibrary, fd);
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_close failed\n");
+    exit(1);
+  }
+
+  length = hyportLibrary.file_length(&hyportLibrary, "hytest.tmp2");
+  printf("  length = %d\n", length);
+  if (length != 18) {
+    fprintf(stderr, "hytest.tmp2 has incorrect length\n");
+    exit(1);
+  }
+
+  if (hyportLibrary.file_attr(&hyportLibrary, "hytest.tmp2") != HyIsFile) {
+    fprintf(stderr, "hytest.tmp2 has incorrect type\n");
+    exit(1);
+  }
+
+  rc = hyportLibrary.file_unlink(&hyportLibrary, "hytest.tmp2");
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_unlink failed\n");
+    exit(1);
+  }
+
+  rc = hyportLibrary.file_mkdir(&hyportLibrary, "hytest.dir.tmp");
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_mkdir failed\n");
+    exit(1);
+  }
+
+  if (hyportLibrary.file_attr(&hyportLibrary, "hytest.dir.tmp") != HyIsDir) {
+    fprintf(stderr, "hytest.dir.tmp has incorrect type\n");
+    exit(1);
+  }
+
+  rc = hyportLibrary.file_unlinkdir(&hyportLibrary, "hytest.dir.tmp");
+  if (rc != 0) {
+    fprintf(stderr, "hyfile_unlinkdir failed\n");
+    exit(1);
+  }
+
+  if (0 != hyportLibrary.port_shutdown_library (&hyportLibrary)) {
+    fprintf(stderr, "portlib shutdown failed\n");
+    return 1;
+  }
+  printf("  portlib shutdown\n");
+
+  return 0;
+}

Propchange: harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/shared/hyfile.c
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/unix/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/unix/makefile?view=auto&rev=499018
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/unix/makefile (added)
+++ harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/unix/makefile Tue Jan 23 05:41:32 2007
@@ -0,0 +1,27 @@
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+#
+# Makefile for 'hyfile'
+#
+
+include $(HY_HDK)/build/make/defines.mk
+
+BUILDFILES = $(SHAREDSUB)hyfile.o
+MDLLIBFILES = $(LIBPATH)libhycommon.a $(DLLPATH)libhyprt.so \
+	$(DLLPATH)libhythr.so $(DLLPATH)libhysig.so
+EXENAME = ../hyfile
+
+include $(HY_HDK)/build/make/rules.mk

Added: harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/windows/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/windows/makefile?view=auto&rev=499018
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/windows/makefile (added)
+++ harmony/enhanced/classlib/trunk/modules/portlib/src/test/native/hyfile/windows/makefile Tue Jan 23 05:41:32 2007
@@ -0,0 +1,30 @@
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+#
+# Makefile for module 'hyfile.exe'
+#
+
+!include <$(HY_HDK)\build\make\defines.mak>
+
+EXENAME=../hyfile.exe
+HYCFLAGS = $(HYCFLAGS) /I$(SHAREDSUB)
+
+BUILDFILES = $(SHAREDSUB)hyfile.obj
+MDLLIBFILES = $(LIBPATH)hycommon.lib $(LIBPATH)hyprt.lib $(LIBPATH)hythr.lib 
+EXEFLAGS=$(conlflags) -subsystem:console
+EXEDLLFILES=$(conlibsdll)
+
+!include <$(HY_HDK)\build\make\rules.mak>