# HG changeset patch # User Jan Vrany # Date 1503933360 -3600 # Node ID 4f1299274d3264dfc87637fc368cb7fc2825bfc5 # Parent e2bba335c9499296e730788f83ba077dd9df7b14 Added (some) tests for `MessageTracer` diff -r e2bba335c949 -r 4f1299274d32 tests/Make.proto --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/Make.proto Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,132 @@ +# $Header$ +# +# DO NOT EDIT +# automagically generated from the projectDefinition: stx_libbasic3_tests. +# +# Warning: once you modify this file, do not rerun +# stmkmp or projectDefinition-build again - otherwise, your changes are lost. +# +# The Makefile as generated by this Make.proto supports the following targets: +# make - compile all st-files to a classLib +# make clean - clean all temp files +# make clobber - clean all +# +# This file contains definitions for Unix based platforms. +# It shares common definitions with the win32-make in Make.spec. + +# +# position (of this package) in directory hierarchy: +# (must point to ST/X top directory, for tools and includes) +TOP=../.. +INCLUDE_TOP=$(TOP)/.. + +# subdirectories where targets are to be made: +SUBDIRS= + + +# subdirectories where Makefiles are to be made: +# (only define if different from SUBDIRS) +# ALLSUBDIRS= + +REQUIRED_SUPPORT_DIRS= + +# if your embedded C code requires any system includes, +# add the path(es) here:, +# ********** OPTIONAL: MODIFY the next lines *** +# LOCALINCLUDES=-Ifoo -Ibar +LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic3 + + +# if you need any additional defines for embedded C code, +# add them here:, +# ********** OPTIONAL: MODIFY the next lines *** +# LOCALDEFINES=-Dfoo -Dbar -DDEBUG +LOCALDEFINES= + +LIBNAME=libstx_libbasic3_tests +STCLOCALOPT='-package=$(PACKAGE)' -I. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=. -varPrefix=$(LIBNAME) + + +# ********** OPTIONAL: MODIFY the next line *** +# additional C-libraries that should be pre-linked with the class-objects +LD_OBJ_LIBS= +LOCAL_SHARED_LIBS= + + +# ********** OPTIONAL: MODIFY the next line *** +# additional C targets or libraries should be added below +LOCAL_EXTRA_TARGETS= + +OBJS= $(COMMON_OBJS) $(UNIX_OBJS) + + + +all:: preMake classLibRule postMake + +pre_objs:: + + + + + + +# Enforce recompilation of package definition class if Mercurial working +# copy state changes. Together with --guessVersion it ensures that package +# definition class always contains correct binary revision string. +ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**')) +stx_libbasic3_tests.$(O): $(shell hg root)/.hg/dirstate +endif + + + + +# run default testsuite for this package +test: $(TOP)/goodies/builder/reports + $(MAKE) -C $(TOP)/goodies/builder/reports -f Makefile.init + $(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE) + + + +# add more install actions here +install:: + +# add more install actions for aux-files (resources) here +installAux:: + +# add more preMake actions here +preMake:: + +# add more postMake actions here +postMake:: cleanjunk + +# build all mandatory prerequisite packages (containing superclasses) for this package +prereq: + cd ../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + cd ../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + cd ../../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + + + +# build all packages containing referenced classes for this package +# they are not needed to compile the package (but later, to load it) +references: + + +cleanjunk:: + -rm -f *.s *.s2 + +clean:: + -rm -f *.o *.H + +clobber:: clean + -rm -f *.so *.dll + + +# BEGINMAKEDEPEND --- do not remove this line; make depend needs it +$(OUTDIR)MessageTracerTests.$(O) MessageTracerTests.$(C) MessageTracerTests.$(H): MessageTracerTests.st $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) +$(OUTDIR)stx_libbasic3_tests.$(O) stx_libbasic3_tests.$(C) stx_libbasic3_tests.$(H): stx_libbasic3_tests.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR) + +# ENDMAKEDEPEND --- do not remove this line + diff -r e2bba335c949 -r 4f1299274d32 tests/Make.spec --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/Make.spec Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,65 @@ +# $Header$ +# +# DO NOT EDIT +# automagically generated from the projectDefinition: stx_libbasic3_tests. +# +# Warning: once you modify this file, do not rerun +# stmkmp or projectDefinition-build again - otherwise, your changes are lost. +# +# This file contains specifications which are common to all platforms. +# + +# Do NOT CHANGE THESE DEFINITIONS +# (otherwise, ST/X will have a hard time to find out the packages location from its packageID, +# to find the source code of a class and to find the library for a package) +MODULE=stx +MODULE_DIR=libbasic3/tests +PACKAGE=$(MODULE):$(MODULE_DIR) + + +# Argument(s) to the stc compiler (stc --usage). +# -headerDir=. : 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 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 (stc --usage). +# -warn : no warnings +# -warnNonStandard : no warnings about ST/X extensions +# -warnEOLComments : no warnings about EOL comment extension +# -warnPrivacy : no warnings about privateClass extension +# -warnUnused : no warnings about unused variables +# +# ********** OPTIONAL: MODIFY the next line(s) *** +# STCWARNINGS=-warn +# STCWARNINGS=-warnNonStandard +# STCWARNINGS=-warnEOLComments +STCWARNINGS=-warnNonStandard + +COMMON_CLASSES= \ + MessageTracerTests \ + stx_libbasic3_tests \ + + + + +COMMON_OBJS= \ + $(OUTDIR)MessageTracerTests.$(O) \ + $(OUTDIR)stx_libbasic3_tests.$(O) \ + + + diff -r e2bba335c949 -r 4f1299274d32 tests/Makefile.init --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/Makefile.init Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,27 @@ +# +# DO NOT EDIT +# +# make uses this file (Makefile) only, if there is no +# file named "makefile" (lower-case m) in the same directory. +# My only task is to generate the real makefile and call make again. +# Thereafter, I am no longer used and needed. +# +# MACOSX caveat: +# as filenames are not case sensitive (in a default setup), +# we cannot use the above trick. Therefore, this file is now named +# "Makefile.init", and you have to execute "make -f Makefile.init" to +# get the initial makefile. This is now also done by the toplevel CONFIG +# script. + +.PHONY: run + +run: makefile + $(MAKE) -f makefile + +#only needed for the definition of $(TOP) +include Make.proto + +makefile: mf + +mf: + $(TOP)/rules/stmkmf diff -r e2bba335c949 -r 4f1299274d32 tests/MessageTracerTests.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/MessageTracerTests.st Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,160 @@ +"{ Package: 'stx:libbasic3/tests' }" + +"{ NameSpace: Smalltalk }" + +TestCase subclass:#MessageTracerTests + instanceVariableNames:'methods' + classVariableNames:'' + poolDictionaries:'' + category:'System-Debugging-Support-Tests' +! + + +!MessageTracerTests methodsFor:'change & update'! + +update: aspect with: param from: sender + aspect == #methodTrap ifTrue:[ + methods add: (param changeClass >> param changeSelector) + ]. + + "Created: / 28-08-2017 / 17:45:42 / Jan Vrany " +! ! + +!MessageTracerTests methodsFor:'private'! + +add: x to: y + ^ x + y + + "Created: / 28-08-2017 / 15:59:53 / Jan Vrany " +! ! + +!MessageTracerTests methodsFor:'running'! + +setUp + Smalltalk addDependent: self. + methods := Set new. + + "Created: / 28-08-2017 / 17:41:53 / Jan Vrany " +! + +tearDown + Smalltalk removeDependent: self. + methods do:[:method | MessageTracer unwrapMethod: method ] + + "Created: / 28-08-2017 / 16:01:28 / Jan Vrany " + "Modified: / 28-08-2017 / 17:42:40 / Jan Vrany " +! ! + +!MessageTracerTests methodsFor:'tests - mocking'! + +test_mock_01a + + self assert: (self add: 1 to: 1) == 2. + MessageTracer mock: #add:to: in: self class do: [ 0 ]. + self assert: (self add: 1 to: 1) == 0. + + "Created: / 28-08-2017 / 16:02:54 / Jan Vrany " +! + +test_mock_01b + + self assert: (self add: 1 to: 1) == 2. + MessageTracer mock: #add:to: in: self class do: [ :r :x :y | r ]. + self assert: (self add: 1 to: 1) == self. + + "Created: / 28-08-2017 / 16:04:06 / Jan Vrany " +! + +test_mock_01c + + self assert: (self add: 1 to: 1) == 2. + MessageTracer mock: #add:to: in: self class do: [ :r :x :y | x - y ]. + self assert: (self add: 1 to: 2) == -1. + + "Created: / 28-08-2017 / 16:04:24 / Jan Vrany " +! + +test_mock_01d + + self assert: (self add: 1 to: 1) == 2. + MessageTracer mock: #add:to: in: self class do: [ :r :x :y :m | (m valueWithReceiver: r arguments: { x . y }) + 10 ]. + self assert: (self add: 1 to: 3) == 14. + + "Created: / 28-08-2017 / 16:05:59 / Jan Vrany " +! + +test_mock_02a + | blocker value | + + self assert: (self add: 1 to: 1) == 2. + + MessageTracer mock: #add:to: in: self class do:[ 0 ]. + blocker := Semaphore new: 0. + [ + value := self add: 10 to: -5. + blocker signal. + ] fork. + blocker wait. + self assert: value == 0. + + "Created: / 28-08-2017 / 16:08:08 / Jan Vrany " +! + +test_mock_02b + | blocker1 blocker2 value | + + self assert: (self add: 1 to: 1) == 2. + + MessageTracer mock: #add:to: in: self class do:[ 0 ]. + blocker1 := Semaphore new: 0. + [ + blocker2 := Semaphore new: 0. + [ + value := self add: 10 to: -5. + blocker2 signal. + ] fork. + blocker2 wait. + blocker1 signal. + ] fork. + blocker1 wait. + self assert: value == 0. + + "Created: / 28-08-2017 / 16:10:30 / Jan Vrany " +! + +test_mock_03a + | blocker1 blocker2 threads | + + + threads := Set new. + + MessageTracer mock: #newProcess in: Block do:[:r :m | + | p | + + p := m valueWithReceiver: r arguments: #(). + threads add: p. + p + ]. + ObjectMemory flushCaches. + blocker1 := Semaphore new: 0. + [ + blocker2 := Semaphore new: 0. + [ + blocker2 signal. + ] fork. + blocker2 wait. + blocker1 signal. + ] fork. + blocker1 wait. + self assert: threads size == 2. + + "Created: / 28-08-2017 / 16:24:35 / Jan Vrany " +! ! + +!MessageTracerTests class methodsFor:'documentation'! + +version_HG + + ^ '$Changeset: $' +! ! + diff -r e2bba335c949 -r 4f1299274d32 tests/abbrev.stc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/abbrev.stc Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,5 @@ +# automagically generated by the project definition +# this file is needed for stc to be able to compile modules independently. +# it provides information about a classes filename, category and especially namespace. +MessageTracerTests MessageTracerTests stx:libbasic3/tests 'System-Debugging-Support-Tests' 1 +stx_libbasic3_tests stx_libbasic3_tests stx:libbasic3/tests '* Projects & Packages *' 3 diff -r e2bba335c949 -r 4f1299274d32 tests/bc.mak --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/bc.mak Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,87 @@ +# $Header$ +# +# DO NOT EDIT +# automagically generated from the projectDefinition: stx_libbasic3_tests. +# +# Warning: once you modify this file, do not rerun +# stmkmp or projectDefinition-build again - otherwise, your changes are lost. +# +# Notice, that the name bc.mak is historical (from times, when only borland c was supported). +# This file contains make rules for the win32 platform using either borland-bcc or visual-c. +# It shares common definitions with the unix-make in Make.spec. +# The bc.mak supports the following targets: +# bmake - compile all st-files to a classLib (dll) +# bmake clean - clean all temp files +# bmake clobber - clean all +# +# Historic Note: +# this used to contain only rules to make with borland +# (called via bmake, by "make.exe -f bc.mak") +# this has changed; it is now also possible to build using microsoft visual c +# (called via vcmake, by "make.exe -f bc.mak -DUSEVC") +# +TOP=..\.. +INCLUDE_TOP=$(TOP)\.. + + + +!INCLUDE $(TOP)\rules\stdHeader_bc + +!INCLUDE Make.spec + +LIBNAME=libstx_libbasic3_tests +MODULE_PATH=libbasic3\tests +RESFILES=stx_libbasic3_testsWINrc.$(RES) + + + +LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic3 +LOCALDEFINES= + +STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME) +LOCALLIBS= + +OBJS= $(COMMON_OBJS) $(WIN32_OBJS) + +ALL:: classLibRule + +classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll + +!INCLUDE $(TOP)\rules\stdRules_bc + +# build all mandatory prerequisite packages (containing superclasses) for this package +prereq: + pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + pushd ..\..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) " + + + + + + + +test: $(TOP)\goodies\builder\reports\NUL + pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT) + $(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE) + +clean:: + -del *.$(CSUFFIX) + + +# BEGINMAKEDEPEND --- do not remove this line; make depend needs it +$(OUTDIR)MessageTracerTests.$(O) MessageTracerTests.$(C) MessageTracerTests.$(H): MessageTracerTests.st $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)stx_libbasic3_tests.$(O) stx_libbasic3_tests.$(C) stx_libbasic3_tests.$(H): stx_libbasic3_tests.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR) + +# ENDMAKEDEPEND --- do not remove this line + +# **Must be at end** + +# Enforce recompilation of package definition class if Mercurial working +# copy state changes. Together with --guessVersion it ensures that package +# definition class always contains correct binary revision string. +!IFDEF HGROOT +$(OUTDIR)stx_libbasic3_tests.$(O): $(HGROOT)\.hg\dirstate +!ENDIF diff -r e2bba335c949 -r 4f1299274d32 tests/bmake.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/bmake.bat Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,15 @@ +@REM ------- +@REM make using Borland bcc32 +@REM type bmake, and wait... +@REM do not edit - automatically generated from ProjectDefinition +@REM ------- +@SET DEFINES= +@REM Kludge got Mercurial, cannot be implemented in Borland make +@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i +@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%" + +make.exe -N -f bc.mak %DEFINES% %* + + + + diff -r e2bba335c949 -r 4f1299274d32 tests/libInit.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/libInit.cc Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,40 @@ +/* + * $Header$ + * + * DO NOT EDIT + * automagically generated from the projectDefinition: stx_libbasic3_tests. + */ +#define __INDIRECTVMINITCALLS__ +#include + +#ifdef WIN32 +# pragma codeseg INITCODE "INITCODE" +#endif + +#if defined(INIT_TEXT_SECTION) || defined(DLL_EXPORT) +DLL_EXPORT void _libstx_libbasic3_tests_Init() INIT_TEXT_SECTION; +DLL_EXPORT void _libstx_libbasic3_tests_InitDefinition() INIT_TEXT_SECTION; +#endif + +extern void _MessageTracerTests_Init(int pass, struct __vmData__ *__pRT__, OBJ snd); +extern void _stx_137libbasic3_137tests_Init(int pass, struct __vmData__ *__pRT__, OBJ snd); + + + +void _libstx_libbasic3_tests_InitDefinition(int pass, struct __vmData__ *__pRT__, OBJ snd) +{ + __BEGIN_PACKAGE2__("libstx_libbasic3_tests__DFN", _libstx_libbasic3_tests_InitDefinition, "stx:libbasic3/tests"); + _stx_137libbasic3_137tests_Init(pass,__pRT__,snd); + + __END_PACKAGE__(); +} + +void _libstx_libbasic3_tests_Init(int pass, struct __vmData__ *__pRT__, OBJ snd) +{ + __BEGIN_PACKAGE2__("libstx_libbasic3_tests", _libstx_libbasic3_tests_Init, "stx:libbasic3/tests"); + _MessageTracerTests_Init(pass,__pRT__,snd); + _stx_137libbasic3_137tests_Init(pass,__pRT__,snd); + + + __END_PACKAGE__(); +} diff -r e2bba335c949 -r 4f1299274d32 tests/mingwmake.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mingwmake.bat Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,18 @@ +@REM ------- +@REM make using mingw gnu compiler +@REM type mingwmake, and wait... +@REM do not edit - automatically generated from ProjectDefinition +@REM ------- +@SET DEFINES= +@REM Kludge got Mercurial, cannot be implemented in Borland make +@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i +@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%" + +@pushd ..\..\rules +@call find_mingw.bat +@popd +make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %* + + + + diff -r e2bba335c949 -r 4f1299274d32 tests/stx_libbasic3_tests.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/stx_libbasic3_tests.st Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,130 @@ +"{ Package: 'stx:libbasic3/tests' }" + +"{ NameSpace: Smalltalk }" + +LibraryDefinition subclass:#stx_libbasic3_tests + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'* Projects & Packages *' +! + + +!stx_libbasic3_tests class methodsFor:'description'! + +excludedFromPreRequisites + "obsolete; temporarily, this is still called for, but will eventually vanish. + + List packages which are to be explicitely excluded from the automatic constructed + prerequisites lists (both). + If empty, everything that is found along the inheritance of any of + my classes is considered to be a prerequisite package." + + ^ #( + ) +! + +mandatoryPreRequisites + "list packages which are mandatory as a prerequisite. + This are packages containing superclasses of my classes and classes which + are extended by myself. + They are mandatory, because we need these packages as a prerequisite for loading and compiling. + This method is generated automatically, + by searching along the inheritance chain of all of my classes. + Please take a look at the #referencedPreRequisites method as well." + + ^ #( + #'stx:goodies/sunit' "TestAsserter - superclass of MessageTracerTests" + #'stx:libbasic' "LibraryDefinition - superclass of stx_libbasic3_tests" + ) +! + +referencedPreRequisites + "list packages which are a prerequisite, because they contain + classes which are referenced by my classes. + These packages are NOT needed as a prerequisite for compiling or loading, + however, a class from it may be referenced during execution and having it + unloaded then may lead to a runtime doesNotUnderstand error, unless the caller + includes explicit checks for the package being present. + This method is generated automatically, + by searching all classes (and their packages) which are referenced by my classes. + Please also take a look at the #mandatoryPreRequisites method" + + ^ #( + #'stx:libbasic3' "MessageTracer - referenced by MessageTracerTests>>tearDown" + ) +! + +subProjects + "list packages which are known as subprojects. + The generated makefile will enter those and make there as well. + However: they are not forced to be loaded when a package is loaded; + for those, redefine #referencedPrerequisites or #mandatoryPreRequisites." + + ^ #( + ) +! ! + +!stx_libbasic3_tests class methodsFor:'description - contents'! + +classNamesAndAttributes + "lists the classes which are to be included in the project. + Each entry in the list may be: a single class-name (symbol), + or an array-literal consisting of class name and attributes. + Attributes are: #autoload or # where os is one of win32, unix,..." + + ^ #( + " or ( attributes...) in load order" + MessageTracerTests + #'stx_libbasic3_tests' + ) +! + +extensionMethodNames + "lists the extension methods which are to be included in the project. + Entries are 2-element array literals, consisting of class-name and selector. + A correponding method with real names must be present in my concrete subclasses + if it has extensions." + + ^ #( + ) +! ! + +!stx_libbasic3_tests class methodsFor:'description - project information'! + +companyName + "Returns a company string which will appear in .rc. + Under win32, this is placed into the dll's file-info. + Other systems may put it elsewhere, or ignore it." + + ^ 'Claus Gittinger & eXept Software AG' +! + +description + "Returns a description string which will appear in nt.def / bc.def" + + ^ 'Smalltalk/X Class library' +! + +legalCopyright + "Returns a copyright string which will appear in .rc. + Under win32, this is placed into the dll's file-info. + Other systems may put it elsewhere, or ignore it." + + ^ 'Copyright Claus Gittinger 2017\nCopyright eXept Software AG 2017' +! + +productName + "Returns a product name which will appear in .rc. + Under win32, this is placed into the dll's file-info. + This method is usually redefined in a concrete application definition" + + ^ 'Smalltalk/X' +! ! + +!stx_libbasic3_tests class methodsFor:'documentation'! + +version_HG + ^ '$Changeset: $' +! ! + diff -r e2bba335c949 -r 4f1299274d32 tests/stx_libbasic3_testsWINrc.rc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/stx_libbasic3_testsWINrc.rc Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,37 @@ +// +// DO NOT EDIT +// automagically generated from the projectDefinition: stx_libbasic3_tests. +// +VS_VERSION_INFO VERSIONINFO + FILEVERSION 6,2,32767,32767 + PRODUCTVERSION 6,2,6,0 +#if (__BORLANDC__) + FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE + FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VS_USER_DEFINED +#endif + +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "Claus Gittinger & eXept Software AG\0" + VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0" + VALUE "FileVersion", "6.2.32767.32767\0" + VALUE "InternalName", "stx:libbasic3/tests\0" + VALUE "LegalCopyright", "Copyright Claus Gittinger 2017\nCopyright eXept Software AG 2017\0" + VALUE "ProductName", "Smalltalk/X\0" + VALUE "ProductVersion", "6.2.6.0\0" + VALUE "ProductDate", "Mon, 28 Aug 2017 15:15:26 GMT\0" + END + + END + + BLOCK "VarFileInfo" + BEGIN // Language | Translation + VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual + END +END diff -r e2bba335c949 -r 4f1299274d32 tests/vcmake.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/vcmake.bat Mon Aug 28 16:16:00 2017 +0100 @@ -0,0 +1,22 @@ +@REM ------- +@REM make using Microsoft Visual C compiler +@REM type vcmake, and wait... +@REM do not edit - automatically generated from ProjectDefinition +@REM ------- + +@if not defined VSINSTALLDIR ( + pushd ..\..\rules + call vcsetup.bat + popd +) +@SET DEFINES= +@REM Kludge got Mercurial, cannot be implemented in Borland make +@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i +@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%" + + +make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %* + + + +