*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 21 Dec 2005 23:40:43 +0100
changeset 290 67df6a25492e
parent 289 c73fa6b70a82
child 291 1ad419cb7e68
*** empty log message ***
Make.spec
bc.def
bmake.bat
libInit.cc
nt.mak
obsolete/RegressionTests__QuickTest.st
--- a/Make.spec	Fri Dec 16 16:13:02 2005 +0100
+++ b/Make.spec	Wed Dec 21 23:40:43 2005 +0100
@@ -6,6 +6,9 @@
 PACKAGE=$(MODULE):$(MODULE_DIR)
 
 OBJS= \
+	QuickTest.$(O)
+
+xOBJS= \
     RegressionTests__BlockTest.$(O) \
     RegressionTests__ClassWithoutVersionMethod.$(O) \
     RegressionTests__CollectionTests.$(O) \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bc.def	Wed Dec 21 23:40:43 2005 +0100
@@ -0,0 +1,7 @@
+LIBRARY         regression
+DESCRIPTION     'regression tests'
+CODE            PRELOAD MOVEABLE DISCARDABLE
+SEGMENTS
+    INITCODE PRELOAD DISCARDABLE
+EXPORTS
+    __regression_Init     @1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bmake.bat	Wed Dec 21 23:40:43 2005 +0100
@@ -0,0 +1,2 @@
+if not exist object\nul mkdir objbc
+make.exe -N -f nt.mak %1 %2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libInit.cc	Wed Dec 21 23:40:43 2005 +0100
@@ -0,0 +1,26 @@
+/*
+ * DO NOT EDIT
+ * automagically generated from Make.proto (by make libInit.cc)
+ */
+#define __INDIRECTVMINITCALLS__
+#include <stc.h>
+#define INIT_TEXT_SECT /* as nothing */
+#ifdef WIN32
+# pragma codeseg INITCODE "INITCODE"
+#else /* not WIN32 */
+# if defined(__GNUC__) && !defined(NO_SECTION_ATTRIBUTES)
+#  if (__GNUC__  == 2 && __GNUC_MINOR__ >= 7) || __GNUC__ > 2
+#   undef INIT_TEXT_SECT
+#   define INIT_TEXT_SECT __attribute__((section(".stxitext")))
+#  endif
+# endif /* not GNUC */
+#endif /* not WIN32 */
+#ifdef INIT_TEXT_SECT
+extern void _regression_Init() INIT_TEXT_SECT;
+#endif
+void _regression_Init(pass, __pRT__, snd)
+OBJ snd; struct __vmData__ *__pRT__; {
+__BEGIN_PACKAGE2__("regression", _regression_Init, "exept:regression");
+_RegressionTests__QuickTest_Init(pass,__pRT__,snd);
+__END_PACKAGE__();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nt.mak	Wed Dec 21 23:40:43 2005 +0100
@@ -0,0 +1,114 @@
+# $Header$
+#
+# -- nt.mak created from project at 'From Smalltalk/X, Version:3.5.5 on 8-nov-1999 at 21:44:36'
+#
+# Warning: YOU SHOULD NOT MODIFY THIS FILE - MODIFY THE .prj FILE INSTEAD
+# and let the ProjectBrowser recreate this file.
+# once you modify this file, do not recreate nt.mak again
+# - otherwise, your changes are lost.
+
+# default installation directory:
+# (overwrite with 'make INSTALLTOP_DIR=... install')
+# the INSTALLBASE is imported from configurations... and usually
+# defaults to something like /opt/smalltalk.
+# (overwrite with 'make INSTALLBASE=... install')
+INSTALLTOP_DIR=$(INSTALLBASE)/packages/$(MODULE)/$(MODULE_DIR)
+INSTALLLIB_DIR=$(INSTALLTOP_DIR)
+INSTALLBIN_DIR=$(INSTALLTOP_DIR)
+
+#
+# position (of this package) in directory hierarchy:
+# (must point to ST/X top directory, for tools and includes)
+TOP=..\..\stx
+
+#
+!INCLUDE Make.spec
+#
+!INCLUDE "$(TOP)\rules\stdHeader_nt"
+
+# subdirectories where targets are to be made:
+SUBDIRS=
+
+# subdirectories where Makefiles are to be made:
+# (only define if different from SUBDIRS)
+# ALLSUBDIRS=
+
+# the next define suppresses installation of
+# the classes as autoloaded (i.e. not added to abbrev.stc).
+SUPPRESS_LOCAL_ABBREVS=1
+
+# Argument(s) to the stc compiler.
+#  -H.         : create header files locally
+#                (if removed, they will be created as common
+#  -Pxxx       : defines the package
+#  -Zxxx       : a prefix for variables within the classLib
+#  -Dxxx       : defines passed to to CC for inline C-code
+#  -Ixxx       : include path passed to CC for inline C-code
+#  +optspace   : optimized for space
+#  +optspace2  : optimized more for space
+#  +optspace3  : optimized even more for space
+#  +optinline  : generate inline code for some ST constructs
+#  +inlineNew  : additionally inline new
+#  +inlineMath : additionally inline some floatPnt math stuff
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
+# STCLOCALOPTIMIZATIONS=+optspace3
+STCLOCALOPTIMIZATIONS=+optspace3
+
+# Argument(s) to the stc compiler.
+#  -warn            : no warnings
+#  -warnNonStandard : no warnings about ST/X extensions
+#  -warnEOLComments : no warnings about EOL comment extension
+#  -warnPrivacy     : no warnings about privateClass extension
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCWARNINGS=-warn
+# STCWARNINGS=-warnNonStandard
+# STCWARNINGS=-warnEOLComments
+STCWARNINGS=-warnEOLComments
+
+# if your embedded C code requires any system includes,
+# add the path(es) here:,
+# ********** OPTIONAL: MODIFY the next lines ***
+# LOCALINCLUDES=-Ifoo -Ibar
+LOCALINCLUDES=-I. -I$(TOP)\goodies\sunit
+
+# if you need any additional defines for embedded C code,
+# add them here:,
+# ********** OPTIONAL: MODIFY the next lines ***
+# LOCALDEFINES=-Dfoo -Dbar -DDEBUG
+LOCALDEFINES=
+
+STCLOCALOPT=-I. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALINCLUDES) $(LOCALDEFINES) -H. -package=$(PACKAGE) -varPrefix=$(LIBNAME) $(COMMONSYMFLAG) $(INITCODESEPFLAG)
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C-libraries that should be pre-linked with the class-objects
+LD_OBJ_LIBS=
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C targets or libraries should be added below
+LOCAL_EXTRA_TARGETS=
+
+#ALL:: preMake $(LIBDIR)\$(LIBNAME).lib $(BINDIR)\$(LIBNAME).dll postMake
+ALL:: $(LIBDIR)\$(LIBNAME).lib $(BINDIR)\$(LIBNAME).dll
+
+
+# add more preMake actions here
+preMake:
+
+# add more postMake actions here
+postMake: cleanjunk
+
+#clean::
+#       -del $(OUTDIR)*.obj
+#       -del *.sc
+
+#clobber::
+#       -del $(OUTDIR)*.obj
+#       -del *.sc
+#       -del *.dll
+#       -del *.lib
+
+
+!INCLUDE $(TOP)\rules\stdRules_nt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/obsolete/RegressionTests__QuickTest.st	Wed Dec 21 23:40:43 2005 +0100
@@ -0,0 +1,194 @@
+'From Smalltalk/X, Version:5.2.7 on 08-12-2005 at 10:32:23'                     !
+
+"{ Package: 'exept:regression' }"
+
+"{ NameSpace: RegressionTests }"
+
+Object subclass:#QuickTest
+	instanceVariableNames:'a b'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'tests-Regression'
+!
+
+!QuickTest methodsFor:'accessing'!
+
+a
+    ^ a
+!
+
+a:something
+    a := something.
+!
+
+b
+    ^ b
+!
+
+b:something
+    b := something.
+! !
+
+!QuickTest methodsFor:'comparing'!
+
+testNE
+    a = b ifTrue:[^ false].
+    ^ true.
+!
+
+testNE0_fltArg
+    a = 0.0 ifTrue:[^ false].
+    ^ true.
+!
+
+testNE0_fltRec
+    0.0 = a ifTrue:[^ false].
+    ^ true.
+!
+
+testNE0_intArg
+    a = 0 ifTrue:[^ false].
+    ^ true.
+!
+
+testNE0_intRec
+    0 = a ifTrue:[^ false].
+    ^ true.
+! !
+
+!QuickTest methodsFor:'tests'!
+
+ioRef
+    ^ self
+!
+
+r3Name:arg
+    self assert:(arg = 'foo')
+!
+
+r3PinName
+    ^ self
+!
+
+refBlockName
+    ^ 'foo'
+!
+
+test_eqNumberBug
+    "reported 09-09-2004;
+     stc generated wrong code for some inlined = - compare (shame)."
+
+    self assert: (
+       (self
+	   a:0;
+	   b:0) testNE ) == false.
+
+    self assert: (
+       (self
+	   a:0;
+	   b:0.0) testNE ) == false.
+
+    self assert: (
+       (self
+	   a:0.0;
+	   b:0) testNE ) == false.
+
+    self assert: (
+       (self
+	   a:0.0;
+	   b:0.0) testNE ) == false.
+
+
+    self assert: (
+       (self
+	   a:0.0) testNE0_intArg ) == false.
+    self assert: (
+       (self
+	   a:0.0) testNE0_fltArg ) == false.
+
+    self assert: (
+       (self
+	   a:0.0) testNE0_intRec ) == false.
+    self assert: (
+       (self
+	   a:0.0) testNE0_fltRec ) == false.
+
+    self assert: (
+       (self
+	   a:0) testNE0_intArg ) == false.
+    self assert: (
+       (self
+	   a:0) testNE0_fltArg ) == false.
+
+    self assert: (
+       (self
+	   a:0) testNE0_intRec ) == false.
+    self assert: (
+       (self
+	   a:0) testNE0_fltRec ) == false.
+
+    self assert: (
+       (self
+	   a:1) testNE0_intArg ) == true.
+    self assert: (
+       (self
+	   a:1) testNE0_fltArg ) == true.
+
+    self assert: (
+       (self
+	   a:1) testNE0_intRec ) == true.
+    self assert: (
+       (self
+	   a:1) testNE0_fltRec ) == true.
+
+    self assert: (
+       (self
+	   a:1.0) testNE0_intArg ) == true.
+    self assert: (
+       (self
+	   a:1.0) testNE0_fltArg ) == true.
+
+    self assert: (
+       (self
+	   a:1.0) testNE0_intRec ) == true.
+    self assert: (
+       (self
+	   a:1.0) testNE0_fltRec ) == true.
+
+    "
+     self new test_eqNumberBug
+    "
+!
+
+test_isNilBug
+    1000 timesRepeat:[
+        10 timesRepeat:[
+            [
+                self test_isNilBugForker
+            ] fork.
+        ].
+        Delay waitForSeconds:0.5.
+    ]
+
+    "
+     self new test_isNilBug
+    "
+!
+
+test_isNilBugForker
+    |bn blk order model pin|
+
+    order := Array with:self with:self with:self.
+    model := self.
+
+    [
+        order do:[:aPin |
+            (aPin ioRef notNil and:[(bn := aPin ioRef refBlockName) notNil]) ifTrue:[
+                blk := model r3Name:bn.
+                pin := aPin ioRef r3PinName.
+                Processor yield.
+            ].
+        ].
+    ] forkAt:6.
+! !
+