Ticket #250: regression_fix_1_of_1_rev_4d2e6776489f_Issue__250__Smalltak_X_is_reading_Windows_Registry_only_in_ASCII_but_registry_is_UTF16.patch

File regression_fix_1_of_1_rev_4d2e6776489f_Issue__250__Smalltak_X_is_reading_Windows_Registry_only_in_ASCII_but_registry_is_UTF16.patch, 123.3 KB (added by patrik.svestka@…, 5 years ago)

Tests for read-only

  • Make.proto

    # HG changeset patch
    # User Patrik Svestka <patrik.svestka@gmail.com>
    # Date 1542371880 -3600
    #      Fri Nov 16 13:38:00 2018 +0100
    # Branch jv
    # Node ID 4d2e6776489fbc3a6334b9f997194119df65413e
    # Parent  fffbc76ecc66b91285d4e770c282c824765d4001
    Issue #250: Smalltak/X is reading Windows Registry only in ASCII but registry is UTF16
    
    - Adding regression tests for #Win32OperatingSystemTest.
    - Adding a template example - unicodeRegistryExample which is an example registry file.  Adding contents of the file
      to registry via setUp and deleting it via tearDown.
    - Added unicode tests for expecially valueNamed: and for ValueNamesAndValuesDo:.  All tests are testing unicode (UTF-16)
      read for all available registry types.
    - added testReadSubKeyAtIndex_01 which tests #subKeyAtIndex: (which is zero based)
    
    - unicodeRegistryExample contains also max path to test the limits
    - Testing unicode read and unicode read with enumeration
    - Testing unicode reading of remote registry
    - adding to the file template a string with only digits
    - adding tests with empty data values
    - adding tests with non-string names
    
    diff -r fffbc76ecc66 -r 4d2e6776489f Make.proto
    a b  
    1 # $Header$
    2 #
    3 # DO NOT EDIT
    4 # automagically generated from the projectDefinition: stx_goodies_regression.
    5 #
    6 # Warning: once you modify this file, do not rerun
    7 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
    8 #
    9 # The Makefile as generated by this Make.proto supports the following targets:
    10 #    make         - compile all st-files to a classLib
    11 #    make clean   - clean all temp files
    12 #    make clobber - clean all
    13 #
    14 # This file contains definitions for Unix based platforms.
    15 # It shares common definitions with the win32-make in Make.spec.
    16 
    17 #
    18 # position (of this package) in directory hierarchy:
    19 # (must point to ST/X top directory, for tools and includes)
    20 TOP=../..
    21 INCLUDE_TOP=$(TOP)/..
    22 
    23 # subdirectories where targets are to be made:
    24 SUBDIRS=
    25 
    26 
    27 # subdirectories where Makefiles are to be made:
    28 # (only define if different from SUBDIRS)
    29 # ALLSUBDIRS=
    30 
    31 REQUIRED_SUPPORT_DIRS=
    32 
    33 # if your embedded C code requires any system includes,
    34 # add the path(es) here:,
    35 # ********** OPTIONAL: MODIFY the next lines ***
    36 # LOCALINCLUDES=-Ifoo -Ibar
    37 LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/communication -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/goodies/xml/stx -I$(INCLUDE_TOP)/stx/goodies/xml/vw -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libboss -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/libjavascript -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
    38 
    39 
    40 # if you need any additional defines for embedded C code,
    41 # add them here:,
    42 # ********** OPTIONAL: MODIFY the next lines ***
    43 # LOCALDEFINES=-Dfoo -Dbar -DDEBUG
    44 LOCALDEFINES=
    45 
    46 LIBNAME=libstx_goodies_regression
    47 STCLOCALOPT='-package=$(PACKAGE)' -I. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=.  -varPrefix=$(LIBNAME)
    48 
    49 
    50 # ********** OPTIONAL: MODIFY the next line ***
    51 # additional C-libraries that should be pre-linked with the class-objects
    52 LD_OBJ_LIBS=
    53 LOCAL_SHARED_LIBS=
    54 
    55 
    56 # ********** OPTIONAL: MODIFY the next line ***
    57 # additional C targets or libraries should be added below
    58 LOCAL_EXTRA_TARGETS=
    59 
    60 OBJS= $(COMMON_OBJS) $(UNIX_OBJS)
    61 
    62 
    63 
    64 all:: preMake classLibRule postMake
    65 
    66 pre_objs:: 
    67 
    68 
    69 
    70 
    71 
    72 
    73 # Enforce recompilation of package definition class if Mercurial working
    74 # copy state changes. Together with --guessVersion it ensures that package
    75 # definition class always contains correct binary revision string.
    76 ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
    77 stx_goodies_regression.$(O): $(shell hg root)/.hg/dirstate
    78 endif
    79 
    80 
    81 
    82 
    83 # run default testsuite for this package
    84 test: $(TOP)/goodies/builder/reports
    85         $(MAKE) -C $(TOP)/goodies/builder/reports -f Makefile.init
    86         $(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE)
    87 
    88 
    89 
    90 # add more install actions here
    91 install::
    92 
    93 # add more install actions for aux-files (resources) here
    94 installAux::
    95 
    96 # add more preMake actions here
    97 preMake::
    98 
    99 # add more postMake actions here
    100 postMake:: cleanjunk
    101 
    102 # build all mandatory prerequisite packages (containing superclasses) for this package
    103 prereq:
    104         cd ../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    105         cd ../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    106         cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    107         cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    108         cd ../sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    109 
    110 
    111 
    112 # build all packages containing referenced classes for this package
    113 # they are not needed to compile the package (but later, to load it)
    114 references:
    115 
    116 
    117 cleanjunk::
    118         -rm -f *.s *.s2
    119 
    120 clean::
    121         -rm -f *.o *.H
    122 
    123 clobber:: clean
    124         -rm -f *.so *.dll
    125 
    126 
    127 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
    128 $(OUTDIR)stx_goodies_regression.$(O) stx_goodies_regression.$(C) stx_goodies_regression.$(H): stx_goodies_regression.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
    129 
    130 # ENDMAKEDEPEND --- do not remove this line
    131 
     1# $Header$
     2#
     3# DO NOT EDIT
     4# automagically generated from the projectDefinition: stx_goodies_regression.
     5#
     6# Warning: once you modify this file, do not rerun
     7# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
     8#
     9# The Makefile as generated by this Make.proto supports the following targets:
     10#    make         - compile all st-files to a classLib
     11#    make clean   - clean all temp files
     12#    make clobber - clean all
     13#
     14# This file contains definitions for Unix based platforms.
     15# It shares common definitions with the win32-make in Make.spec.
     16
     17#
     18# position (of this package) in directory hierarchy:
     19# (must point to ST/X top directory, for tools and includes)
     20TOP=../..
     21INCLUDE_TOP=$(TOP)/..
     22
     23# subdirectories where targets are to be made:
     24SUBDIRS=
     25
     26
     27# subdirectories where Makefiles are to be made:
     28# (only define if different from SUBDIRS)
     29# ALLSUBDIRS=
     30
     31REQUIRED_SUPPORT_DIRS=
     32
     33# if your embedded C code requires any system includes,
     34# add the path(es) here:,
     35# ********** OPTIONAL: MODIFY the next lines ***
     36# LOCALINCLUDES=-Ifoo -Ibar
     37LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/communication -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/goodies/xml/stx -I$(INCLUDE_TOP)/stx/goodies/xml/vw -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libboss -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/libjavascript -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
     38
     39
     40# if you need any additional defines for embedded C code,
     41# add them here:,
     42# ********** OPTIONAL: MODIFY the next lines ***
     43# LOCALDEFINES=-Dfoo -Dbar -DDEBUG
     44LOCALDEFINES=
     45
     46LIBNAME=libstx_goodies_regression
     47STCLOCALOPT='-package=$(PACKAGE)' -I. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=.  -varPrefix=$(LIBNAME)
     48
     49
     50# ********** OPTIONAL: MODIFY the next line ***
     51# additional C-libraries that should be pre-linked with the class-objects
     52LD_OBJ_LIBS=
     53LOCAL_SHARED_LIBS=
     54
     55
     56# ********** OPTIONAL: MODIFY the next line ***
     57# additional C targets or libraries should be added below
     58LOCAL_EXTRA_TARGETS=
     59
     60OBJS= $(COMMON_OBJS) $(UNIX_OBJS)
     61
     62
     63
     64all:: preMake classLibRule postMake
     65
     66pre_objs:: 
     67
     68
     69
     70
     71
     72
     73# Enforce recompilation of package definition class if Mercurial working
     74# copy state changes. Together with --guessVersion it ensures that package
     75# definition class always contains correct binary revision string.
     76ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
     77stx_goodies_regression.$(O): $(shell hg root)/.hg/dirstate
     78endif
     79
     80
     81
     82
     83# run default testsuite for this package
     84test: $(TOP)/goodies/builder/reports
     85        $(MAKE) -C $(TOP)/goodies/builder/reports -f Makefile.init
     86        $(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE)
     87
     88
     89
     90# add more install actions here
     91install::
     92
     93# add more install actions for aux-files (resources) here
     94installAux::
     95
     96# add more preMake actions here
     97preMake::
     98
     99# add more postMake actions here
     100postMake:: cleanjunk
     101
     102# build all mandatory prerequisite packages (containing superclasses) for this package
     103prereq:
     104        cd ../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     105        cd ../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     106        cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     107        cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     108        cd ../sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     109
     110
     111
     112# build all packages containing referenced classes for this package
     113# they are not needed to compile the package (but later, to load it)
     114references:
     115
     116
     117cleanjunk::
     118        -rm -f *.s *.s2
     119
     120clean::
     121        -rm -f *.o *.H
     122
     123clobber:: clean
     124        -rm -f *.so *.dll
     125
     126
     127# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
     128$(OUTDIR)stx_goodies_regression.$(O) stx_goodies_regression.$(C) stx_goodies_regression.$(H): stx_goodies_regression.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
     129
     130# ENDMAKEDEPEND --- do not remove this line
     131
  • Make.spec

    diff -r fffbc76ecc66 -r 4d2e6776489f Make.spec
    a b  
    1 # $Header$
    2 #
    3 # DO NOT EDIT
    4 # automagically generated from the projectDefinition: stx_goodies_regression.
    5 #
    6 # Warning: once you modify this file, do not rerun
    7 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
    8 #
    9 # This file contains specifications which are common to all platforms.
    10 #
    11 
    12 # Do NOT CHANGE THESE DEFINITIONS
    13 # (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
    14 #  to find the source code of a class and to find the library for a package)
    15 MODULE=stx
    16 MODULE_DIR=goodies/regression
    17 PACKAGE=$(MODULE):$(MODULE_DIR)
    18 
    19 
    20 # Argument(s) to the stc compiler (stc --usage).
    21 #  -headerDir=. : create header files locally
    22 #                (if removed, they will be created as common
    23 #  -Pxxx       : defines the package
    24 #  -Zxxx       : a prefix for variables within the classLib
    25 #  -Dxxx       : defines passed to CC for inline C-code
    26 #  -Ixxx       : include path passed to CC for inline C-code
    27 #  +optspace   : optimized for space
    28 #  +optspace2  : optimized more for space
    29 #  +optspace3  : optimized even more for space
    30 #  +optinline  : generate inline code for some ST constructs
    31 #  +inlineNew  : additionally inline new
    32 #  +inlineMath : additionally inline some floatPnt math stuff
    33 #
    34 # ********** OPTIONAL: MODIFY the next line(s) ***
    35 # STCLOCALOPTIMIZATIONS=+optinline +inlineNew
    36 # STCLOCALOPTIMIZATIONS=+optspace3
    37 STCLOCALOPTIMIZATIONS=+optspace3
    38 
    39 
    40 # Argument(s) to the stc compiler (stc --usage).
    41 #  -warn            : no warnings
    42 #  -warnNonStandard : no warnings about ST/X extensions
    43 #  -warnEOLComments : no warnings about EOL comment extension
    44 #  -warnPrivacy     : no warnings about privateClass extension
    45 #  -warnUnused      : no warnings about unused variables
    46 #
    47 # ********** OPTIONAL: MODIFY the next line(s) ***
    48 # STCWARNINGS=-warn
    49 # STCWARNINGS=-warnNonStandard
    50 # STCWARNINGS=-warnEOLComments
    51 STCWARNINGS=-warnNonStandard
    52 
    53 COMMON_CLASSES= \
    54         stx_goodies_regression \
    55 
    56 
    57 
    58 
    59 COMMON_OBJS= \
    60     $(OUTDIR_SLASH)stx_goodies_regression.$(O) \
    61 
    62 
    63 
     1# $Header$
     2#
     3# DO NOT EDIT
     4# automagically generated from the projectDefinition: stx_goodies_regression.
     5#
     6# Warning: once you modify this file, do not rerun
     7# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
     8#
     9# This file contains specifications which are common to all platforms.
     10#
     11
     12# Do NOT CHANGE THESE DEFINITIONS
     13# (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
     14#  to find the source code of a class and to find the library for a package)
     15MODULE=stx
     16MODULE_DIR=goodies/regression
     17PACKAGE=$(MODULE):$(MODULE_DIR)
     18
     19
     20# Argument(s) to the stc compiler (stc --usage).
     21#  -headerDir=. : create header files locally
     22#                (if removed, they will be created as common
     23#  -Pxxx       : defines the package
     24#  -Zxxx       : a prefix for variables within the classLib
     25#  -Dxxx       : defines passed to CC for inline C-code
     26#  -Ixxx       : include path passed to CC for inline C-code
     27#  +optspace   : optimized for space
     28#  +optspace2  : optimized more for space
     29#  +optspace3  : optimized even more for space
     30#  +optinline  : generate inline code for some ST constructs
     31#  +inlineNew  : additionally inline new
     32#  +inlineMath : additionally inline some floatPnt math stuff
     33#
     34# ********** OPTIONAL: MODIFY the next line(s) ***
     35# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
     36# STCLOCALOPTIMIZATIONS=+optspace3
     37STCLOCALOPTIMIZATIONS=+optspace3
     38
     39
     40# Argument(s) to the stc compiler (stc --usage).
     41#  -warn            : no warnings
     42#  -warnNonStandard : no warnings about ST/X extensions
     43#  -warnEOLComments : no warnings about EOL comment extension
     44#  -warnPrivacy     : no warnings about privateClass extension
     45#  -warnUnused      : no warnings about unused variables
     46#
     47# ********** OPTIONAL: MODIFY the next line(s) ***
     48# STCWARNINGS=-warn
     49# STCWARNINGS=-warnNonStandard
     50# STCWARNINGS=-warnEOLComments
     51STCWARNINGS=-warnNonStandard
     52
     53COMMON_CLASSES= \
     54        stx_goodies_regression \
     55
     56
     57
     58
     59COMMON_OBJS= \
     60    $(OUTDIR)stx_goodies_regression.$(O) \
     61
     62
     63
  • Makefile.init

    diff -r fffbc76ecc66 -r 4d2e6776489f Makefile.init
    a b  
    1 #
    2 # DO NOT EDIT
    3 #
    4 # make uses this file (Makefile) only, if there is no
    5 # file named "makefile" (lower-case m) in the same directory.
    6 # My only task is to generate the real makefile and call make again.
    7 # Thereafter, I am no longer used and needed.
    8 #
    9 # MACOSX caveat:
    10 #   as filenames are not case sensitive (in a default setup),
    11 #   we cannot use the above trick. Therefore, this file is now named
    12 #   "Makefile.init", and you have to execute "make -f Makefile.init" to
    13 #   get the initial makefile.  This is now also done by the toplevel CONFIG
    14 #   script.
    15 
    16 .PHONY: run
    17 
    18 run: makefile
    19         $(MAKE) -f makefile
    20 
    21 #only needed for the definition of $(TOP)
    22 include Make.proto
    23 
    24 makefile: mf
    25 
    26 mf:
    27         $(TOP)/rules/stmkmf
     1#
     2# DO NOT EDIT
     3#
     4# make uses this file (Makefile) only, if there is no
     5# file named "makefile" (lower-case m) in the same directory.
     6# My only task is to generate the real makefile and call make again.
     7# Thereafter, I am no longer used and needed.
     8#
     9# MACOSX caveat:
     10#   as filenames are not case sensitive (in a default setup),
     11#   we cannot use the above trick. Therefore, this file is now named
     12#   "Makefile.init", and you have to execute "make -f Makefile.init" to
     13#   get the initial makefile.  This is now also done by the toplevel CONFIG
     14#   script.
     15
     16.PHONY: run
     17
     18run: makefile
     19        $(MAKE) -f makefile
     20
     21#only needed for the definition of $(TOP)
     22include Make.proto
     23
     24makefile: mf
     25
     26mf:
     27        $(TOP)/rules/stmkmf
  • RegressionTests__SelectorNamespacesTests.st

    diff -r fffbc76ecc66 -r 4d2e6776489f RegressionTests__SelectorNamespacesTests.st
    a b  
    1 "{ Encoding: utf8 }"
    2 
    31"
    42 COPYRIGHT (c) 2006 by eXept Software AG
    53 COPYRIGHT (c) 2016-2017 Jan Vrany
     
    174172!
    175173
    176174version_SVN
    177     ^ '§ Id: SelectorNamespacesTests.st 10567 2010-08-19 20:39:34Z vranyj1  §'
     175    ^ '§ Id: SelectorNamespacesTests.st 10567 2010-08-19 20:39:34Z vranyj1  §'
    178176! !
    179177
  • RegressionTests__Win32OperatingSystemTest.st

    diff -r fffbc76ecc66 -r 4d2e6776489f RegressionTests__Win32OperatingSystemTest.st
    a b  
     1"{ Encoding: utf8 }"
     2
    13"
    24 COPYRIGHT (c) Claus Gittinger / eXept Software AG
    35 COPYRIGHT (c) 2016 Jan Vrany
     
    1517"{ NameSpace: RegressionTests }"
    1618
    1719TestCase subclass:#Win32OperatingSystemTest
    18         instanceVariableNames:''
     20        instanceVariableNames:'registryPath'
    1921        classVariableNames:''
    2022        poolDictionaries:''
    2123        category:'tests-Regression-RuntimeSystem'
     
    3840"
    3941! !
    4042
     43!Win32OperatingSystemTest methodsFor:'file templates'!
     44
     45unicodeRegistryExample
     46
     47^  'Windows Registry Editor Version 5.00
     48
     49[HKEY_CURRENT_USER\Software\SmalltalkX-tests]
     50"emptyToTest"=""
     51"testEmptyMultiSZ"=hex(7):00,00
     52"bledesu"="''Testing Unicode chars ř ž č ルすしかき'').          "
     53"しかき    "="Testus gradus"
     54" ř ž č ル.          "="Testing Unicode chars ř ž č ルすしかき"
     55"zero"=hex:
     56"non-zero"=hex:11,10
     57"す    "=hex:10
     58"dword_value"=dword:000023af
     59"11"="A number name"
     60"き"=dword:234234af
     61"qwordvalue"=hex(b):ad,61,28,a3,95,0e,74,79
     62"qword_max"=hex(b):ff,ff,ff,ff,ff,ff,ff,ff
     63"すし"=hex(b):ef,ad,00,00,00,00,00,00
     64"Font_Leelawadee UI Bold"=hex(7):53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,\
     65  00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,\
     66  49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,\
     67  00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,\
     68  46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,\
     69  00,6c,00,64,00,00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,\
     70  54,00,43,00,2c,00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,\
     71  00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,\
     72  4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,\
     73  00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,\
     74  64,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
     75  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,\
     76  65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,\
     77  00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,\
     78  48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,\
     79  00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,\
     80  69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,\
     81  00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,\
     82  6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,\
     83  00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,\
     84  36,00,00,00,4d,00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
     85  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,\
     86  48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
     87  00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,\
     88  4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,\
     89  00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,\
     90  00,00,4d,00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,\
     91  00,2c,00,4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,\
     92  69,00,63,00,20,00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,\
     93  00,48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,\
     94  74,00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,\
     95  00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,\
     96  48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,\
     97  00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,\
     98  53,00,45,00,47,00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,\
     99  00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,\
     100  62,00,6f,00,6c,00,00,00,00,00
     101"ř ž č ルすしか"=hex(7):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,\
     102  00,6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,\
     103  20,00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,\
     104  00,29,00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,\
     105  54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,\
     106  00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,00,00,00,53,00,\
     107  45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,46,00,2c,00,53,\
     108  00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,\
     109  00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,\
     110  00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,\
     111  6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,45,00,49,\
     112  00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,65,00,69,00,\
     113  72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
     114  00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
     115  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,\
     116  00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,\
     117  31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,\
     118  00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,\
     119  66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,\
     120  00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,00,48,00,42,00,\
     121  44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,\
     122  00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,\
     123  42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,4d,\
     124  00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
     125  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,\
     126  00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,41,00,4c,00,\
     127  47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,61,00,6c,\
     128  00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,00,42,00,\
     129  6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,00,00,4d,00,41,\
     130  00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,\
     131  61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,\
     132  00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,\
     133  2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,\
     134  00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,\
     135  38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,2e,\
     136  00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,00,\
     137  63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,53,00,45,00,47,\
     138  00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,\
     139  67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,62,00,6f,00,6c,\
     140  00,00,00,00,00
     141"Ugh"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,6e,00,\
     142  69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,00,59,\
     143  01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,29,00,\
     144  2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,00
     145" č ルすしか"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,\
     146  6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,\
     147  00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,\
     148  29,00,2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,\
     149  00
     150
     151[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか]
     152"bledesu"="''Testing Unicode chars ř ž č ルすしかき'').          "
     153"しかき    "="Testus gradus"
     154" ř ž č ル.          "="Testing Unicode chars ř ž č ルすしかき"
     155"zero"=hex:
     156"non-zero"=hex:11,10
     157"す    "=hex:10
     158"dword_value"=dword:000023af
     159"き"=dword:234234af
     160"qwordvalue"=hex(b):ad,61,28,a3,95,0e,74,79
     161"qword_max"=hex(b):ff,ff,ff,ff,ff,ff,ff,ff
     162"すし"=hex(b):ef,ad,00,00,00,00,00,00
     163"Font_Leelawadee UI Bold"=hex(7):53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,\
     164  00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,\
     165  49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,\
     166  00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,\
     167  46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,\
     168  00,6c,00,64,00,00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,\
     169  54,00,43,00,2c,00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,\
     170  00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,\
     171  4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,\
     172  00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,\
     173  64,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
     174  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,\
     175  65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,\
     176  00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,\
     177  48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,\
     178  00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,\
     179  69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,\
     180  00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,\
     181  6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,\
     182  00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,\
     183  36,00,00,00,4d,00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
     184  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,\
     185  48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
     186  00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,\
     187  4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,\
     188  00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,\
     189  00,00,4d,00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,\
     190  00,2c,00,4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,\
     191  69,00,63,00,20,00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,\
     192  00,48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,\
     193  74,00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,\
     194  00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,\
     195  48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,\
     196  00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,\
     197  53,00,45,00,47,00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,\
     198  00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,\
     199  62,00,6f,00,6c,00,00,00,00,00
     200"ř ž č ルすしか"=hex(7):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,\
     201  00,6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,\
     202  20,00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,\
     203  00,29,00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,\
     204  54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,\
     205  00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,00,00,00,53,00,\
     206  45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,46,00,2c,00,53,\
     207  00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,\
     208  00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,\
     209  00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,\
     210  6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,45,00,49,\
     211  00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,65,00,69,00,\
     212  72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
     213  00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
     214  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,\
     215  00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,\
     216  31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,\
     217  00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,\
     218  66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,\
     219  00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,00,48,00,42,00,\
     220  44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,\
     221  00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,\
     222  42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,4d,\
     223  00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
     224  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,\
     225  00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,41,00,4c,00,\
     226  47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,61,00,6c,\
     227  00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,00,42,00,\
     228  6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,00,00,4d,00,41,\
     229  00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,\
     230  61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,\
     231  00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,\
     232  2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,\
     233  00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,\
     234  38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,2e,\
     235  00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,00,\
     236  63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,53,00,45,00,47,\
     237  00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,\
     238  67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,62,00,6f,00,6c,\
     239  00,00,00,00,00
     240"Ugh"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,6e,00,\
     241  69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,00,59,\
     242  01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,29,00,\
     243  2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,00
     244" č ルすしか"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,\
     245  6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,\
     246  00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,\
     247  29,00,2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,\
     248  00
     249
     250[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
     251"testing"=" ルすしか"
     252"か"=dword:00000002
     253"256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end"="Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd"
     254
     255[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
     256
     257[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\unreachable]
     258
     259[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\reachable]
     260'
     261
     262    "Created: / 16-11-2018 / 11:24:57 / svestkap"
     263    "Modified: / 05-12-2018 / 11:33:32 / svestkap"
     264! !
     265
    41266!Win32OperatingSystemTest methodsFor:'release'!
    42267
    43268setUp
     269    | registryToImport file |
     270
    44271    self skipIf: OperatingSystem isMSWINDOWSlike not description: 'Windows specific tests'.
    45     super setUp
     272    super setUp.
     273           
     274    registryToImport := self unicodeRegistryExample.   
     275   
     276    "/ registry path which will be used 
     277    registryPath := registryToImport
     278        copyFrom: (registryToImport indexOf: $[) + 1
     279        to: (registryToImport indexOf: $]) - 1.       
     280       
     281    "/ temporary file which will be used for importing
     282    file := Filename newTemporary.
     283
     284    "/ Registry export is in UTF-16LE with BOM
     285
     286    " What is BOM?
     287      A byte order mark (BOM) consists of the character code U+FEFF at the beginning of a data stream, where it can be used as a signature
     288      defining the byte order and encoding form, primarily of unmarked plaintext files. Under some higher level protocols, use of a BOM may
     289      be mandatory (or prohibited) in the Unicode data stream defined in that protocol."
     290
     291    "/ needed to write to file as Windows Registry do UTF16-LE With Signature
     292    " BOM for UTF-16is:
     293       FE FF    UTF-16, big-endian (BE)
     294       FF FE    UTF-16, little-endian (LE)"
     295   
     296    "/ Writing BOM first
     297    file writingFileDo: [ :stream |         
     298       stream nextPutUtf16: (Character codePoint:16rFFFE)         
     299    ].   
     300   
     301    "/ this is UTF16-LE (Little Endian) Without Signature (BOM)
     302    file appendingFileDo: [ :stream | stream nextPutAllUtf16Bytes: registryToImport MSB: false].
     303     
     304    [   "/ adding registry entry so we can test it
     305        OperatingSystem getCommandOutputFrom: ('REG IMPORT ' , file asString)
     306    ] ensure: [ file remove ].
    46307
    47308    "Created: / 28-12-2016 / 22:12:14 / jv"
     309    "Modified (format): / 16-11-2018 / 11:30:30 / svestkap"
     310!
     311
     312tearDown
     313    self skipIf: OperatingSystem isMSWINDOWSlike not description: 'Windows specific tests'.
     314    super tearDown.
     315   
     316    "/ remove the added registry entry
     317    OperatingSystem getCommandOutputFrom:('REG DELETE "', registryPath, '" /f').
     318
     319    "/ Check if testing registry was correctly deleted
     320    self assert: ((OperatingSystem registryEntry key: registryPath) isNil).
     321
     322    "Created: / 16-11-2018 / 11:29:12 / svestkap"
    48323! !
    49324
    50325!Win32OperatingSystemTest methodsFor:'tests'!
     
    123398    "Modified: / 05-01-2017 / 21:45:20 / jv"
    124399! !
    125400
     401!Win32OperatingSystemTest methodsFor:'tests-unicodeRead'!
     402
     403testReadSubKeyAtIndex
     404    "Reading subKeys at certain index
     405    WARNING: subKeyAtIndex: is zero based!!!!!!"
     406
     407    | readData testingRegistryPath |
     408
     409    readData := Unicode16String new.   
     410    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     411
     412    readData := testingRegistryPath subKeyAtIndex: 0.
     413
     414    self assert: readData notEmptyOrNil.
     415    self assert: (readData path copyAfterLast: $\) = ' ルすしか'
     416
     417    "
     418     self run:#testReadSubKeyAtIndex
     419     self new testReadSubKeyAtIndex
     420    "
     421
     422    "Created: / 05-12-2018 / 12:39:45 / svestkap"
     423!
     424
     425testReadSubKeyAtIndex_01
     426    "Reading subKeys at certain index
     427    WARNING: subKeyAtIndex: is zero based!!!!!!"
     428
     429    | readData testingRegistryPath |
     430
     431    readData := Unicode16String new.   
     432    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     433
     434    readData := testingRegistryPath subKeyAtIndex: 0.
     435
     436    self assert: readData notEmptyOrNil.
     437    self assert: (readData path copyAfterLast: $\) = ' ルすしか'
     438
     439    "
     440     self run:#testReadSubKeyAtIndex_01
     441     self new testReadSubKeyAtIndex_01
     442    "
     443
     444    "Created: / 21-11-2018 / 10:34:01 / svestkap"
     445!
     446
     447testReadSubKeyAtIndex_MaxPath
     448    "reading subKeyAtIndex with max Path
     449     Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
     450     MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
     451
     452    | readData testingRegistryPath |
     453
     454    "/readData := Unicode16String new.   
     455    testingRegistryPath := Win32OperatingSystem registryEntry key:
     456        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     457   
     458    readData := testingRegistryPath subKeyAtIndex: 0.
     459
     460    self assert: readData path notEmptyOrNil.
     461    self assert:(readData path endsWith: '|end').   
     462
     463    "/ this is maximum path size which can be reached if the SubKey is reached via index
     464    self assert: readData path size = 563. "/ there is one backslash (for path) more compared to testReadSubKeyNamesAndClassesAtIndex_MaxPath_01
     465   
     466    "
     467     self run:#testReadSubKeyAtIndex_MaxPath
     468     self new testReadSubKeyAtIndex_MaxPath
     469    "
     470
     471    "Created: / 05-12-2018 / 12:39:54 / svestkap"
     472!
     473
     474testReadSubKeyAtIndex_MaxPath_01
     475    "reading subKeyAtIndex with max Path
     476     Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
     477     MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
     478
     479    | readData testingRegistryPath |
     480
     481    "/readData := Unicode16String new.   
     482    testingRegistryPath := Win32OperatingSystem registryEntry key:
     483        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     484   
     485    readData := testingRegistryPath subKeyAtIndex: 0.
     486
     487    self assert: readData path notEmptyOrNil.
     488    self assert:(readData path endsWith: '|end').   
     489
     490    "/ this is maximum path size which can be reached if the SubKey is reached via index
     491    self assert: readData path size = 563. "/ there is one backslash (for path) more compared to testReadSubKeyNamesAndClassesAtIndex_MaxPath_01
     492   
     493    "
     494     self run:#testReadSubKeyAtIndex_MaxPath_01
     495     self new testReadSubKeyAtIndex_MaxPath_01
     496    "
     497
     498    "Created: / 22-11-2018 / 11:29:25 / svestkap"
     499!
     500
     501testReadSubKeyNamesAndClassesAtIndex_MaxPath
     502    "reading SubKeyNamesAndClasses with max Path
     503     Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
     504     MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
     505
     506    | readData testingRegistryPath |
     507
     508    readData := Unicode16String new.   
     509    testingRegistryPath := Win32OperatingSystem registryEntry key:
     510        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     511   
     512    readData := testingRegistryPath subKeyNameAndClassAtIndex: 0.
     513
     514    self assert: readData notEmptyOrNil.
     515    self assert:(readData first endsWith: '|end').
     516    self assert: readData first = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.       
     517
     518    "/ this is maximum path size which can be reached if the SubKey is reached via index
     519    self assert: (testingRegistryPath path size + readData first size) = 562.
     520   
     521    "
     522     self run:#testReadSubKeyNamesAndClassesAtIndex_MaxPath
     523     self new testReadSubKeyNamesAndClassesAtIndex_MaxPath
     524    "
     525
     526    "Created: / 05-12-2018 / 12:40:08 / svestkap"
     527!
     528
     529testReadSubKeyNamesAndClassesAtIndex_MaxPath_01
     530    "reading SubKeyNamesAndClasses with max Path
     531     Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
     532     MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
     533
     534    | readData testingRegistryPath |
     535
     536    readData := Unicode16String new.   
     537    testingRegistryPath := Win32OperatingSystem registryEntry key:
     538        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     539   
     540    readData := testingRegistryPath subKeyNameAndClassAtIndex: 0.
     541
     542    self assert: readData notEmptyOrNil.
     543    self assert:(readData first endsWith: '|end').
     544    self assert: readData first = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.       
     545
     546    "/ this is maximum path size which can be reached if the SubKey is reached via index
     547    self assert: (testingRegistryPath path size + readData first size) = 562.
     548   
     549    "
     550     self run:#testReadSubKeyNamesAndClassesAtIndex_MaxPath_01
     551     self new testReadSubKeyNamesAndClassesAtIndex_MaxPath_01
     552    "
     553
     554    "Created: / 22-11-2018 / 11:28:20 / svestkap"
     555!
     556
     557testReadTooLongPath
     558    "Trying to read too long path - if you try to read such a long path it just returns nil"
     559
     560    | testingRegistryPath |
     561   
     562    testingRegistryPath := Win32OperatingSystem registryEntry key:
     563            (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa
     564            |end','\','256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     565
     566    self assert: testingRegistryPath isNil           
     567   
     568    "
     569     self run:#testReadTooLongPath
     570     self new testReadTooLongPath
     571    "
     572
     573    "Created: / 22-11-2018 / 11:19:51 / svestkap"
     574    "Modified (format): / 05-12-2018 / 12:38:58 / svestkap"
     575!
     576
     577testReadValueNameAtIndex
     578    "Reading values (#valueNameAtIndex:) at certain index
     579    WARNING: #valueNameAtIndex: is zero based!!!!!!
     580    Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
     581    MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
     582
     583    | readData testingRegistryPath |
     584
     585    readData := Unicode16String new.   
     586    testingRegistryPath := Win32OperatingSystem registryEntry key: (registryPath,'\', ' ルすしか').
     587
     588    readData := testingRegistryPath valueNameAtIndex: 1.
     589
     590    self assert: readData notEmptyOrNil.
     591    self assert: readData = 'しかき    '
     592
     593    "
     594     self run:#testReadValueNameAtIndex
     595     self new testReadValueNameAtIndex
     596    "
     597
     598    "Created: / 05-12-2018 / 12:40:21 / svestkap"
     599!
     600
     601testReadValueNameAtIndex_01
     602    "Reading values (#valueNameAtIndex:) at certain index
     603    WARNING: #valueNameAtIndex: is zero based!!!!!!
     604    Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
     605    MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
     606
     607    | readData testingRegistryPath |
     608
     609    readData := Unicode16String new.   
     610    testingRegistryPath := Win32OperatingSystem registryEntry key: (registryPath,'\', ' ルすしか').
     611
     612    readData := testingRegistryPath valueNameAtIndex: 1.
     613
     614    self assert: readData notEmptyOrNil.
     615    self assert: readData = 'しかき    '
     616
     617    "
     618     self run:#testReadValueNameAtIndex_01
     619     self new testReadValueNameAtIndex_01
     620    "
     621
     622    "Created: / 22-11-2018 / 13:11:42 / svestkap"
     623!
     624
     625testReadValueNamed_REG_BINARY_01
     626    "Testing if REG_BINARY values are read correctly via valueNamed:"
     627
     628    | readData testingRegistryPath |
     629       
     630    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     631     
     632    readData := testingRegistryPath valueNamed: 'zero'.
     633       
     634    self assert: readData = ByteArray new.
     635
     636    "
     637     self run:#testReadValueNamed_REG_BINARY_01
     638     self new testReadValueNamed_REG_BINARY_01
     639    "
     640
     641    "Created: / 16-11-2018 / 12:37:50 / svestkap"
     642!
     643
     644testReadValueNamed_REG_BINARY_02
     645    "Testing if REG_BINARY values are read correctly via valueNamed:"
     646
     647    | testingRegistryPath readData readDataHex |
     648       
     649    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     650     
     651    readData := testingRegistryPath valueNamed: 'non-zero'.       
     652    readDataHex := readData hexPrintStringWithSeparator: $|.
     653   
     654    self assert: readData = #[17 16]. "/ ByteArray
     655    self assert: readDataHex = '11|10' "/ hex   
     656   
     657    "
     658     self run:#testReadValueNamed_REG_BINARY_02
     659     self new testReadValueNamed_REG_BINARY_02
     660    "
     661
     662    "Created: / 16-11-2018 / 12:39:33 / svestkap"
     663!
     664
     665testReadValueNamed_REG_DWORD_01
     666    "Testing if REG_DWORD values are read correctly via valueNamed:"
     667
     668    | readData testingRegistryPath |
     669   
     670    readData := Unicode16String new.   
     671    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     672     
     673    readData := testingRegistryPath valueNamed: 'dword_value'.
     674       
     675    self assert: readData = 9135.
     676
     677    "
     678     self run:#testReadValueNamed_REG_DWORD_01
     679     self new testReadValueNamed_REG_DWORD_01
     680    "
     681
     682    "Created: / 16-11-2018 / 12:24:26 / svestkap"
     683!
     684
     685testReadValueNamed_REG_DWORD_02
     686    "Testing if REG_DWORD values are read correctly via valueNamed:"
     687
     688    | readData testingRegistryPath |
     689   
     690    readData := Unicode16String new.   
     691    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     692     
     693    readData := testingRegistryPath valueNamed: 'き'.
     694       
     695    self assert: readData = 591541423.
     696
     697    "
     698     self run:#testReadValueNamed_REG_DWORD_02
     699     self new testReadValueNamed_REG_DWORD_02
     700    "
     701
     702    "Created: / 16-11-2018 / 12:24:43 / svestkap"
     703!
     704
     705testReadValueNamed_REG_EXPAND_SZ_01
     706    "Testing if REG_EXPAND_SZ values are read correctly via valueNamed:"
     707
     708    | readData testingRegistryPath |
     709   
     710    readData := Unicode16String new.   
     711    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     712     
     713    readData := testingRegistryPath valueNamed: ' č ルすしか'.
     714       
     715    self assert: readData = '''Testing Unicode chars ř ž č ルすしかき'').          '.
     716
     717    "
     718     self run:#testReadValueNamed_REG_EXPAND_SZ_01
     719     self new testReadValueNamed_REG_EXPAND_SZ_01
     720    "
     721
     722    "Created: / 16-11-2018 / 12:27:58 / svestkap"
     723!
     724
     725testReadValueNamed_REG_EXPAND_SZ_02
     726    "Testing if REG_EXPAND_SZ values are read correctly via valueNamed:"
     727
     728    | readData testingRegistryPath |
     729   
     730    readData := Unicode16String new.   
     731    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     732     
     733    readData := testingRegistryPath valueNamed: 'Ugh'.
     734       
     735    self assert: readData = '''Testing Unicode chars ř ž č ルすしかき'').          '.
     736
     737    "
     738     self run:#testReadValueNamed_REG_EXPAND_SZ_02
     739     self new testReadValueNamed_REG_EXPAND_SZ_02
     740    "
     741
     742    "Created: / 16-11-2018 / 12:29:52 / svestkap"
     743!
     744
     745testReadValueNamed_REG_MULTI_SZ_01
     746    "Testing if REG_MULTI_SZ values are read correctly via valueNamed:"
     747
     748    | readData testingRegistryPath |
     749       
     750    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     751     
     752    readData := testingRegistryPath valueNamed: 'Font_Leelawadee UI Bold'.
     753       
     754    self assert: readData = #('SEGOEUIB.TTF,Segoe UI Bold,110,82' 'SEGOEUIB.TTF,Segoe UI Bold' 'MEIRYOB.TTC,Meiryo UI Bold,120,96'
     755                              'MEIRYOB.TTC,Meiryo UI Bold' 'MSJHBD.TTC,Microsoft JhengHei UI Bold,120,96' 'MSJHBD.TTC,Microsoft JhengHei UI Bold'
     756                              'MSYHBD.TTC,Microsoft YaHei UI Bold,128,96' 'MSYHBD.TTC,Microsoft YaHei UI Bold' 'MALGUNBD.TTF,Malgun Gothic Bold,118,96'
     757                              'MALGUNBD.TTF,Malgun Gothic Bold' 'YUGOTHB.TTC,Yu Gothic UI Bold,128,96' 'YUGOTHB.TTC,Yu Gothic UI Bold' 'SEGUISYM.TTF,Segoe UI Symbol')
     758
     759    "
     760     self run:#testReadValueNamed_REG_MULTI_SZ_01
     761     self new testReadValueNamed_REG_MULTI_SZ_01
     762    "
     763
     764    "Created: / 16-11-2018 / 12:30:24 / svestkap"
     765!
     766
     767testReadValueNamed_REG_MULTI_SZ_02
     768    "Testing if REG_MULTI_SZ values are read correctly via valueNamed:"
     769
     770    | readData testingRegistryPath |
     771       
     772    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     773     
     774    readData := testingRegistryPath valueNamed: 'ř ž č ルすしか'.
     775       
     776    self assert: readData = #('''Testing Unicode chars ř ž č ルすしかき'')'
     777                              'SEGOEUIB.TTF,Segoe UI Bold,110,82' 'SEGOEUIB.TTF,Segoe UI Bold' 'MEIRYOB.TTC,Meiryo UI Bold,120,96'
     778                              'MEIRYOB.TTC,Meiryo UI Bold' 'MSJHBD.TTC,Microsoft JhengHei UI Bold,120,96' 'MSJHBD.TTC,Microsoft JhengHei UI Bold'
     779                              'MSYHBD.TTC,Microsoft YaHei UI Bold,128,96' 'MSYHBD.TTC,Microsoft YaHei UI Bold' 'MALGUNBD.TTF,Malgun Gothic Bold,118,96'
     780                              'MALGUNBD.TTF,Malgun Gothic Bold' 'YUGOTHB.TTC,Yu Gothic UI Bold,128,96' 'YUGOTHB.TTC,Yu Gothic UI Bold' 'SEGUISYM.TTF,Segoe UI Symbol')
     781
     782    "
     783     self run:#testReadValueNamed_REG_MULTI_SZ_02
     784     self new testReadValueNamed_REG_MULTI_SZ_02
     785    "
     786
     787    "Created: / 16-11-2018 / 12:35:57 / svestkap"
     788!
     789
     790testReadValueNamed_REG_MULTI_SZ_03
     791    "Testing if empty REG_MULTI_SZ value is read correctly via valueNamed:"
     792
     793    | readData testingRegistryPath |
     794       
     795    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     796     
     797    readData := testingRegistryPath valueNamed: 'testEmptyMultiSZ'.
     798   
     799    self assert: readData isEmpty
     800
     801    "
     802     self run:#testReadValueNamed_REG_MULTI_SZ_03
     803     self new testReadValueNamed_REG_MULTI_SZ_03
     804    "
     805
     806    "Created: / 03-12-2018 / 10:59:48 / svestkap"
     807!
     808
     809testReadValueNamed_REG_QWORD_01
     810    "Testing if REG_QWORD values are read correctly via valueNamed:
     811     The read value is a QWORD maximum value"
     812
     813    | readData testingRegistryPath |
     814   
     815    readData := Unicode16String new.   
     816    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     817     
     818    readData := testingRegistryPath valueNamed: 'qword_max'.
     819       
     820    self assert: readData = 18446744073709551615.
     821
     822    "
     823     self run:#testReadValueNamed_REG_QWORD_01
     824     self new testReadValueNamed_REG_QWORD_01
     825    "
     826
     827    "Created: / 16-11-2018 / 12:25:47 / svestkap"
     828    "Modified (comment): / 05-12-2018 / 12:38:09 / svestkap"
     829!
     830
     831testReadValueNamed_REG_QWORD_02
     832    "Testing if REG_QWORD values are read correctly via valueNamed:"
     833
     834    | readData testingRegistryPath |
     835   
     836    readData := Unicode16String new.   
     837    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     838     
     839    readData := testingRegistryPath valueNamed: 'qwordvalue'.
     840       
     841    self assert: readData = 8751636011737964973.
     842
     843    "
     844     self run:#testReadValueNamed_REG_QWORD_02
     845     self new testReadValueNamed_REG_QWORD_02
     846    "
     847
     848    "Created: / 16-11-2018 / 12:26:23 / svestkap"
     849!
     850
     851testReadValueNamed_REG_QWORD_03
     852    "Testing if REG_QWORD values are read correctly via valueNamed:"
     853
     854    | readData testingRegistryPath |
     855   
     856    readData := Unicode16String new.   
     857    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     858     
     859    readData := testingRegistryPath valueNamed: 'すし'.
     860       
     861    self assert: readData asSmallInteger = 44527.
     862
     863    "
     864     self run:#testReadValueNamed_REG_QWORD_03
     865     self new testReadValueNamed_REG_QWORD_03
     866    "
     867
     868    "Created: / 16-11-2018 / 12:27:17 / svestkap"
     869    "Modified: / 20-11-2018 / 12:25:05 / svestkap"
     870!
     871
     872testReadValueNamed_REG_SZ_01
     873    "Testing if REG_SZ values are read correctly via valueNamed:"
     874
     875    | readData testingRegistryPath |
     876   
     877    readData := Unicode16String new.   
     878    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     879     
     880    readData := testingRegistryPath valueNamed: 'bledesu'.
     881   
     882    self assert: readData = '''Testing Unicode chars ř ž č ルすしかき'').          '.
     883   
     884    "
     885     self run:#testReadValueNamed_REG_SZ_01
     886     self new testReadValueNamed_REG_SZ_01
     887    "
     888
     889    "Created: / 16-11-2018 / 12:14:59 / svestkap"
     890!
     891
     892testReadValueNamed_REG_SZ_02
     893    "Testing if REG_SZ values are read correctly via valueNamed:"
     894
     895    | readData testingRegistryPath |
     896   
     897    readData := Unicode16String new.   
     898    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     899     
     900    readData := testingRegistryPath valueNamed: ' ř ž č ル.          '.
     901       
     902    self assert: readData = 'Testing Unicode chars ř ž č ルすしかき'.   
     903
     904    "
     905     self run:#testReadValueNamed_REG_SZ_02
     906     self new testReadValueNamed_REG_SZ_02
     907    "
     908
     909    "Created: / 16-11-2018 / 12:15:17 / svestkap"
     910!
     911
     912testReadValueNamed_REG_SZ_03
     913    "Testing if REG_SZ values are read correctly via valueNamed:"
     914
     915    | readData testingRegistryPath |
     916   
     917    readData := Unicode16String new.   
     918    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     919     
     920    readData := testingRegistryPath valueNamed: 'しかき    '.
     921       
     922    self assert: readData = 'Testus gradus'.
     923
     924    "
     925     self run:#testReadValueNamed_REG_SZ_03
     926     self new testReadValueNamed_REG_SZ_03
     927    "
     928
     929    "Created: / 16-11-2018 / 12:21:59 / svestkap"
     930!
     931
     932testReadValueNamed_REG_SZ_04
     933    "Testing if empty REG_SZ value is read correctly via valueNamed:"
     934
     935    | readData testingRegistryPath |
     936   
     937    readData := Unicode16String new.   
     938    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     939     
     940    readData := testingRegistryPath valueNamed: 'emptyToTest'.
     941   
     942    self assert: readData isEmpty.
     943   
     944    "
     945     self run:#testReadValueNamed_REG_SZ_04
     946     self new testReadValueNamed_REG_SZ_04
     947    "
     948
     949    "Created: / 03-12-2018 / 10:56:11 / svestkap"
     950!
     951
     952testReadValueNamed_nonStringValue
     953    "Testing reading non-string value from Registry via valueNamed
     954     User should see a warning message in Transcript"
     955
     956    | readData testingRegistryPath |
     957   
     958    readData := Unicode16String new.   
     959    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     960     
     961    readData := testingRegistryPath valueNamed: 11.
     962       
     963    self assert: readData isNil.
     964
     965    "
     966     self run:#testReadValueNamed_nonStringValue
     967     self new testReadValueNamed_nonStringValue
     968    "
     969
     970    "Created: / 05-12-2018 / 12:40:31 / svestkap"
     971!
     972
     973testReadValueNamed_nonStringValue_01
     974    "Testing reading non-string value from Registry via valueNamed
     975     User should see a warning message in Transcript"
     976
     977    | readData testingRegistryPath |
     978   
     979    readData := Unicode16String new.   
     980    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     981     
     982    readData := testingRegistryPath valueNamed: 11.
     983       
     984    self assert: readData isNil.
     985
     986    "
     987     self run:#testReadValueNamed_nonStringValue_01
     988     self new testReadValueNamed_nonStringValue_01
     989    "
     990
     991    "Created: / 05-12-2018 / 12:37:13 / svestkap"
     992! !
     993
     994!Win32OperatingSystemTest methodsFor:'tests-unicodeReadEnumeration'!
     995
     996testReadAllSubKeysDo_MaxPath
     997    "reading via allSubKeysDo (using subKeyAtIndex:) with max Path
     998     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
     999
     1000    | readData testingRegistryPath |
     1001
     1002    readData := OrderedCollection new.   
     1003    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1004        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1005   
     1006    testingRegistryPath  allSubKeysDo: [ :subEntry |
     1007        readData add: subEntry
     1008    ].     
     1009   
     1010    self assert: readData notEmptyOrNil.   
     1011    self assert: readData size = 3.
     1012    "/ this is normally unreachable subKey (subkey actually called 'unreachable')
     1013    self assert: (readData at: 2) path size = 575.
     1014   
     1015    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
     1016
     1017    self assert: readData size = 3.   
     1018    self assert: (readData first endsWith: '|end').
     1019    self assert: readData second = 'unreachable'.
     1020    self assert: readData third = 'reachable'
     1021
     1022    "
     1023     self run:#testReadAllSubKeysDo_MaxPath
     1024     self new testReadAllSubKeysDo_MaxPath
     1025    "
     1026
     1027    "Created: / 05-12-2018 / 12:40:53 / svestkap"
     1028!
     1029
     1030testReadAllSubKeysDo_MaxPath_01
     1031    "reading via allSubKeysDo (using subKeyAtIndex:) with max Path
     1032     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
     1033
     1034    | readData testingRegistryPath |
     1035
     1036    readData := OrderedCollection new.   
     1037    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1038        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1039   
     1040    testingRegistryPath  allSubKeysDo: [ :subEntry |
     1041        readData add: subEntry
     1042    ].     
     1043   
     1044    self assert: readData notEmptyOrNil.   
     1045    self assert: readData size = 3.
     1046    "/ this is normally unreachable subKey (subkey actually called 'unreachable')
     1047    self assert: (readData at: 2) path size = 575.
     1048   
     1049    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
     1050
     1051    self assert: readData size = 3.   
     1052    self assert: (readData first endsWith: '|end').
     1053    self assert: readData second = 'unreachable'.
     1054    self assert: readData third = 'reachable'
     1055
     1056    "
     1057     self run:#testReadAllSubKeysDo_MaxPath_01
     1058     self new testReadAllSubKeysDo_MaxPath_01
     1059    "
     1060
     1061    "Created: / 22-11-2018 / 12:12:01 / svestkap"
     1062!
     1063
     1064testReadRemoteKeyOnHost
     1065    "Reading remote registry via remoteKeyOnHost:
     1066     Note: a key must be a predefined key for more see:
     1067     https://docs.microsoft.com/en-us/windows/desktop/SysInfo/predefined-keys"
     1068
     1069    | testingRegistryPath remoteRegistry readData  |
     1070   
     1071    "/ HKEY_CURRENT_USER is one of the predefined keys
     1072    testingRegistryPath := Win32OperatingSystem registryEntry key: 'HKEY_CURRENT_USER'.       
     1073    "/ testing done on localhost
     1074    remoteRegistry := testingRegistryPath remoteKeyOnHost: 'localhost'.
     1075    readData := remoteRegistry subKeys.
     1076   
     1077    readData := readData copy collect: [ :subEntry | (subEntry path copyAfterLast: $\) asLowercase ].
     1078   
     1079    self assert: readData notEmptyOrNil.   
     1080    self assert: (readData includes: 'software').   
     1081
     1082    "
     1083     self run:#testReadRemoteKeyOnHost
     1084     self new testReadRemoteKeyOnHost
     1085    "
     1086
     1087    "Created: / 05-12-2018 / 12:41:06 / svestkap"
     1088!
     1089
     1090testReadRemoteKeyOnHost_01
     1091    "Reading remote registry via remoteKeyOnHost:
     1092     Note: a key must be a predefined key for more see:
     1093     https://docs.microsoft.com/en-us/windows/desktop/SysInfo/predefined-keys"
     1094
     1095    | testingRegistryPath remoteRegistry readData  |
     1096   
     1097    "/ HKEY_CURRENT_USER is one of the predefined keys
     1098    testingRegistryPath := Win32OperatingSystem registryEntry key: 'HKEY_CURRENT_USER'.       
     1099    "/ testing done on localhost
     1100    remoteRegistry := testingRegistryPath remoteKeyOnHost: 'localhost'.
     1101    readData := remoteRegistry subKeys.
     1102   
     1103    readData := readData copy collect: [ :subEntry | (subEntry path copyAfterLast: $\) asLowercase ].
     1104   
     1105    self assert: readData notEmptyOrNil.   
     1106    self assert: (readData includes: 'software').   
     1107
     1108    "
     1109     self run:#testReadRemoteKeyOnHost_01
     1110     self new testReadRemoteKeyOnHost_01
     1111    "
     1112
     1113    "Created: / 23-11-2018 / 10:08:02 / svestkap"
     1114!
     1115
     1116testReadSubKeyNamesAndClassesDo_MaxPath
     1117    "reading SubKeyNamesAndClasses with max Path
     1118     The path is suppassing the Microsoft limit - for more information see testReadSubKeyNamesAndClassesAtIndex_MaxPath_01"
     1119
     1120    | readData testingRegistryPath |
     1121
     1122    readData := OrderedDictionary new.   
     1123    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1124        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1125   
     1126    testingRegistryPath  subKeyNamesAndClassesDo: [  :name :className |
     1127        readData at: name put: className.
     1128    ].     
     1129
     1130    self assert: readData notEmptyOrNil.
     1131    self assert: readData size = 2.
     1132    self assert: (readData at: 'reachable') isEmpty. "/ the class is empty
     1133
     1134    "
     1135     self run:#testReadSubKeyNamesAndClassesDo_MaxPath
     1136     self new testReadSubKeyNamesAndClassesDo_MaxPath
     1137    "
     1138
     1139    "Created: / 05-12-2018 / 12:41:31 / svestkap"
     1140!
     1141
     1142testReadSubKeyNamesAndClassesDo_MaxPath_01
     1143    "reading SubKeyNamesAndClasses with max Path
     1144     The path is suppassing the Microsoft limit - for more information see testReadSubKeyNamesAndClassesAtIndex_MaxPath_01"
     1145
     1146    | readData testingRegistryPath |
     1147
     1148    readData := OrderedDictionary new.   
     1149    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1150        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1151   
     1152    testingRegistryPath  subKeyNamesAndClassesDo: [  :name :className |
     1153        readData at: name put: className.
     1154    ].     
     1155
     1156    self assert: readData notEmptyOrNil.
     1157    self assert: readData size = 2.
     1158    self assert: (readData at: 'reachable') isEmpty. "/ the class is empty
     1159
     1160    "
     1161     self run:#testReadSubKeyNamesAndClassesDo_MaxPath_01
     1162     self new testReadSubKeyNamesAndClassesDo_MaxPath_01
     1163    "
     1164
     1165    "Created: / 22-11-2018 / 11:28:37 / svestkap"
     1166!
     1167
     1168testReadSubKeysDo_MaxPath
     1169    "reading via subKeysDo (using subKeyAtIndex:) with max Path
     1170     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
     1171
     1172    | readData testingRegistryPath |
     1173
     1174    readData := OrderedCollection new.   
     1175    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1176        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1177   
     1178    testingRegistryPath  subKeysDo: [ :subEntry |
     1179        readData add: subEntry
     1180    ].     
     1181   
     1182    self assert: readData notEmptyOrNil.   
     1183    self assert: readData size = 2.   
     1184    self assert: (readData first) path size = 563.
     1185   
     1186    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
     1187
     1188    self assert: readData size = 2.   
     1189    self assert: (readData first endsWith: '|end').
     1190    self assert: readData second = 'reachable'.
     1191
     1192    "
     1193     self run:#testReadSubKeysDo_MaxPath
     1194     self new testReadSubKeysDo_MaxPath
     1195    "
     1196
     1197    "Created: / 05-12-2018 / 12:41:49 / svestkap"
     1198!
     1199
     1200testReadSubKeysDo_MaxPath_01
     1201    "reading via subKeysDo (using subKeyAtIndex:) with max Path
     1202     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
     1203
     1204    | readData testingRegistryPath |
     1205
     1206    readData := OrderedCollection new.   
     1207    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1208        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1209   
     1210    testingRegistryPath  subKeysDo: [ :subEntry |
     1211        readData add: subEntry
     1212    ].     
     1213   
     1214    self assert: readData notEmptyOrNil.   
     1215    self assert: readData size = 2.   
     1216    self assert: (readData first) path size = 563.
     1217   
     1218    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
     1219
     1220    self assert: readData size = 2.   
     1221    self assert: (readData first endsWith: '|end').
     1222    self assert: readData second = 'reachable'.
     1223
     1224    "
     1225     self run:#testReadSubKeysDo_MaxPath_01
     1226     self new testReadSubKeysDo_MaxPath_01
     1227    "
     1228
     1229    "Created: / 22-11-2018 / 12:11:57 / svestkap"
     1230!
     1231
     1232testReadSubKeys_MaxPath
     1233    "reading via subKeys (using subKeyAtIndex:) with max Path
     1234     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
     1235
     1236    | readData testingRegistryPath |
     1237   
     1238    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1239        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1240   
     1241    readData := testingRegistryPath subKeys.
     1242   
     1243    self assert: readData notEmptyOrNil.   
     1244    self assert: readData size = 2.   
     1245    self assert: (readData first) path size = 563.
     1246   
     1247    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
     1248
     1249    self assert: readData size = 2.   
     1250    self assert: (readData first endsWith: '|end').
     1251    self assert: readData second = 'reachable'.
     1252
     1253    "
     1254     self run:#testReadSubKeys_MaxPath
     1255     self new testReadSubKeys_MaxPath
     1256    "
     1257
     1258    "Created: / 05-12-2018 / 12:41:59 / svestkap"
     1259!
     1260
     1261testReadSubKeys_MaxPath_01
     1262    "reading via subKeys (using subKeyAtIndex:) with max Path
     1263     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
     1264
     1265    | readData testingRegistryPath |
     1266   
     1267    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1268        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1269   
     1270    readData := testingRegistryPath subKeys.
     1271   
     1272    self assert: readData notEmptyOrNil.   
     1273    self assert: readData size = 2.   
     1274    self assert: (readData first) path size = 563.
     1275   
     1276    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
     1277
     1278    self assert: readData size = 2.   
     1279    self assert: (readData first endsWith: '|end').
     1280    self assert: readData second = 'reachable'.
     1281
     1282    "
     1283     self run:#testReadSubKeysDo_MaxPath_01
     1284     self new testReadSubKeysDo_MaxPath_01
     1285    "
     1286
     1287    "Created: / 22-11-2018 / 14:32:44 / svestkap"
     1288!
     1289
     1290testReadValueNamesAndValuesDo_MaxPath
     1291    "reading via #valueNamesAndValuesDo: (using #valueNameAtIndex:) with max Path
     1292     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
     1293
     1294    | readData testingRegistryPath |
     1295
     1296    readData := OrderedDictionary new.   
     1297    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1298        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1299   
     1300    testingRegistryPath valueNamesAndValuesDo: [ :name :value |
     1301        readData at: name put: value
     1302    ].     
     1303   
     1304    self assert: readData notEmptyOrNil.   
     1305    self assert: readData size = 3.   
     1306    self assert: readData first =  ('testing'->' ルすしか').
     1307    self assert: (readData at: 'か')= 2.
     1308    self assert: readData second = 2.
     1309    self assert: (readData at: '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end')
     1310        = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
     1311    self assert: readData third = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
     1312
     1313    " 
     1314     self run:#testReadValueNamesAndValuesDo_MaxPath
     1315     self new testReadValueNamesAndValuesDo_MaxPath
     1316    "
     1317
     1318    "Created: / 05-12-2018 / 12:43:05 / svestkap"
     1319!
     1320
     1321testReadValueNamesAndValuesDo_REG_SZ_01
     1322    "Testing if REG_SZ values are read correctly via valueNamesAndValuesDo:"
     1323
     1324    | readData testingRegistryPath |
     1325   
     1326    readData := OrderedDictionary new.   
     1327    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     1328     
     1329    testingRegistryPath valueNamesAndValuesDo: [ :name :data |
     1330        readData at: name put: data
     1331    ].
     1332   
     1333    self assert: (readData at: 'bledesu') = '''Testing Unicode chars ř ž č ルすしかき'').          '.
     1334   
     1335    "
     1336     self run:#testReadValueNamesAndValuesDo_REG_SZ_01
     1337     self new testReadValueNamesAndValuesDo_REG_SZ_01
     1338    "
     1339
     1340    "Created: / 16-11-2018 / 12:15:52 / svestkap"
     1341!
     1342
     1343testReadValueNamesAndValuesDo_REG_SZ_02
     1344    "Testing if REG_SZ values are read correctly via valueNamesAndValuesDo:"
     1345
     1346    | readData testingRegistryPath |
     1347   
     1348    readData := OrderedDictionary new.   
     1349    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     1350     
     1351    testingRegistryPath valueNamesAndValuesDo: [ :name :data |
     1352        readData at: name put: data
     1353    ].
     1354   
     1355    self assert: (readData at: ' ř ž č ル.          ') = 'Testing Unicode chars ř ž č ルすしかき'.   
     1356
     1357    "
     1358     self run:#testReadValueNamesAndValuesDo_REG_SZ_02
     1359     self new testReadValueNamesAndValuesDo_REG_SZ_02
     1360    "
     1361
     1362    "Created: / 05-12-2018 / 12:43:35 / svestkap"
     1363!
     1364
     1365testReadValueNamesDo_MaxPath
     1366    "reading via #valueNamesDo: (using #valueNameAtIndex:) with max Path
     1367     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
     1368
     1369    | readData readDataValue testingRegistryPath |
     1370
     1371    readData := OrderedCollection new.   
     1372    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1373        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1374   
     1375    testingRegistryPath valueNamesDo: [ :subEntry |
     1376        readData add: subEntry
     1377    ].     
     1378   
     1379    self assert: readData notEmptyOrNil.   
     1380    self assert: readData size = 3.   
     1381    self assert: readData first = 'testing'.
     1382    self assert: readData second = 'か'.
     1383    self assert: readData third = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.
     1384   
     1385    readDataValue := testingRegistryPath valueNamed: readData third. 
     1386   
     1387    "/ MSDN limits: Value name 16,383 characters (@Windows 2000: 260 ANSI characters or 16,383 Unicode characters)
     1388    "/ the following tests 401 characters       
     1389    self assert: readDataValue = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
     1390    "
     1391     self run:#testReadValueNamesDo_MaxPath
     1392     self new testReadValueNamesDo_MaxPath
     1393    "
     1394
     1395    "Created: / 05-12-2018 / 12:43:49 / svestkap"
     1396!
     1397
     1398testReadValueNames_MaxPath
     1399    "reading via #valueNames (using #valueNameAtIndex:) with max Path
     1400     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
     1401
     1402    | readData testingRegistryPath |
     1403
     1404    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1405        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1406   
     1407    readData := testingRegistryPath valueNames.
     1408   
     1409    self assert: readData isArray.
     1410    self assert: readData notEmptyOrNil.   
     1411    self assert: readData size = 3.   
     1412    self assert: readData first = 'testing'.
     1413    self assert: readData second = 'か'.
     1414    self assert: readData third = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.
     1415
     1416    " 
     1417     self run:#testReadValueNames_MaxPath
     1418     self new testReadValueNames_MaxPath
     1419    "
     1420
     1421    "Created: / 05-12-2018 / 12:44:16 / svestkap"
     1422!
     1423
     1424testReadvalueNamesAndValuesDo_MaxPath_01
     1425    "reading via #valueNamesAndValuesDo: (using #valueNameAtIndex:) with max Path
     1426     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
     1427
     1428    | readData testingRegistryPath |
     1429
     1430    readData := OrderedDictionary new.   
     1431    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1432        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1433   
     1434    testingRegistryPath valueNamesAndValuesDo: [ :name :value |
     1435        readData at: name put: value
     1436    ].     
     1437   
     1438    self assert: readData notEmptyOrNil.   
     1439    self assert: readData size = 3.   
     1440    self assert: readData first =  ('testing'->' ルすしか').
     1441    self assert: (readData at: 'か')= 2.
     1442    self assert: readData second = 2.
     1443    self assert: (readData at: '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end')
     1444        = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
     1445    self assert: readData third = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
     1446
     1447    " 
     1448     self run:#testReadvalueNamesAndValuesDo_MaxPath_01
     1449     self new testReadvalueNamesAndValuesDo_MaxPath_01
     1450    "
     1451
     1452    "Created: / 22-11-2018 / 14:10:34 / svestkap"
     1453!
     1454
     1455testReadvalueNamesAndValuesDo_REG_SZ_02
     1456    "Testing if REG_SZ values are read correctly via valueNamesAndValuesDo:"
     1457
     1458    | readData testingRegistryPath |
     1459   
     1460    readData := OrderedDictionary new.   
     1461    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
     1462     
     1463    testingRegistryPath valueNamesAndValuesDo: [ :name :data |
     1464        readData at: name put: data
     1465    ].
     1466   
     1467    self assert: (readData at: ' ř ž č ル.          ') = 'Testing Unicode chars ř ž č ルすしかき'.   
     1468
     1469    "
     1470     self run:#testReadvalueNamesAndValuesDo_REG_SZ_02
     1471     self new testReadvalueNamesAndValuesDo_REG_SZ_02
     1472    "
     1473
     1474    "Created: / 16-11-2018 / 12:16:16 / svestkap"
     1475!
     1476
     1477testReadvalueNamesDo_MaxPath_01
     1478    "reading via #valueNamesDo: (using #valueNameAtIndex:) with max Path
     1479     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
     1480
     1481    | readData readDataValue testingRegistryPath |
     1482
     1483    readData := OrderedCollection new.   
     1484    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1485        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1486   
     1487    testingRegistryPath valueNamesDo: [ :subEntry |
     1488        readData add: subEntry
     1489    ].     
     1490   
     1491    self assert: readData notEmptyOrNil.   
     1492    self assert: readData size = 3.   
     1493    self assert: readData first = 'testing'.
     1494    self assert: readData second = 'か'.
     1495    self assert: readData third = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.
     1496   
     1497    readDataValue := testingRegistryPath valueNamed: readData third. 
     1498   
     1499    "/ MSDN limits: Value name 16,383 characters (@Windows 2000: 260 ANSI characters or 16,383 Unicode characters)
     1500    "/ the following tests 401 characters       
     1501    self assert: readDataValue = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
     1502    "
     1503     self run:#testReadvalueNamesDo_MaxPath_01
     1504     self new testReadvalueNamesDo_MaxPath_01
     1505    "
     1506
     1507    "Created: / 22-11-2018 / 13:17:42 / svestkap"
     1508!
     1509
     1510testReadvalueNames_MaxPath_01
     1511    "reading via #valueNames (using #valueNameAtIndex:) with max Path
     1512     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
     1513
     1514    | readData testingRegistryPath |
     1515
     1516    testingRegistryPath := Win32OperatingSystem registryEntry key:
     1517        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').       
     1518   
     1519    readData := testingRegistryPath valueNames.
     1520   
     1521    self assert: readData isArray.
     1522    self assert: readData notEmptyOrNil.   
     1523    self assert: readData size = 3.   
     1524    self assert: readData first = 'testing'.
     1525    self assert: readData second = 'か'.
     1526    self assert: readData third = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.
     1527
     1528    " 
     1529     self run:#testReadvalueNames_MaxPath_01
     1530     self new testReadvalueNames_MaxPath_01
     1531    "
     1532
     1533    "Created: / 22-11-2018 / 14:29:07 / svestkap"
     1534! !
     1535
    1261536!Win32OperatingSystemTest class methodsFor:'documentation'!
    1271537
    1281538version
  • abbrev.stc

    diff -r fffbc76ecc66 -r 4d2e6776489f abbrev.stc
    a b  
    1 # automagically generated by the project definition
    2 # this file is needed for stc to be able to compile modules independently.
    3 # it provides information about a classes filename, category and especially namespace.
    4 stx_goodies_regression stx_goodies_regression stx:goodies/regression '* Projects & Packages *' 3
    5 RegressionTests::VMSpawningTestCase RegressionTests__VMSpawningTestCase stx:goodies/regression 'tests-Regression-Abstract' 1
    6 RegressionTests::AssociationTests RegressionTests__AssociationTests stx:goodies/regression 'tests-Regression' 1
    7 RegressionTests::BecomeTests RegressionTests__BecomeTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    8 RegressionTests::BehaviorLookupObjectTests RegressionTests__BehaviorLookupObjectTests stx:goodies/regression 'tests-Regression' 1
    9 RegressionTests::BinaryIOTests RegressionTests__BinaryIOTests stx:goodies/regression 'tests-Regression-Streams' 1
    10 RegressionTests::BinaryTreeTester RegressionTests__BinaryTreeTester stx:goodies/regression 'tests-Regression-Collections' 1
    11 RegressionTests::BlockTest RegressionTests__BlockTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    12 RegressionTests::BreakpointTests RegressionTests__BreakpointTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    13 RegressionTests::CECollectionExtensionTest RegressionTests__CECollectionExtensionTest stx:goodies/regression 'tests-Regression-CollectionExtensions' 1
    14 RegressionTests::CESequenceableCollectionExtensionTest RegressionTests__CESequenceableCollectionExtensionTest stx:goodies/regression 'tests-Regression-CollectionExtensions' 1
    15 RegressionTests::CEStringExtensionTest RegressionTests__CEStringExtensionTest stx:goodies/regression 'tests-Regression-CollectionExtensions' 1
    16 RegressionTests::CachedValueTest RegressionTests__CachedValueTest stx:goodies/regression 'tests-Regression' 1
    17 RegressionTests::CharacterEncoderTests RegressionTests__CharacterEncoderTests stx:goodies/regression 'tests-Regression-Collections' 1
    18 RegressionTests::CharacterSetTests RegressionTests__CharacterSetTests stx:goodies/regression 'tests-Regression-Collections' 1
    19 RegressionTests::CharacterTests RegressionTests__CharacterTests stx:goodies/regression 'tests-Regression' 1
    20 RegressionTests::ClassAndMethodCompilingTestCase RegressionTests__ClassAndMethodCompilingTestCase stx:goodies/regression 'tests-Regression-Abstract' 1
    21 RegressionTests::ClassDescriptionTests RegressionTests__ClassDescriptionTests stx:goodies/regression 'tests-Regression' 1
    22 RegressionTests::ClassWithoutVersionMethod RegressionTests__ClassWithoutVersionMethod stx:goodies/regression 'tests-Regression' 0
    23 RegressionTests::CollectionTests RegressionTests__CollectionTests stx:goodies/regression 'tests-Regression-Collections' 1
    24 RegressionTests::CompilerTest RegressionTests__CompilerTest stx:goodies/regression 'tests-Regression-Compilers' 1
    25 RegressionTests::CompilerTests2 RegressionTests__CompilerTests2 stx:goodies/regression 'tests-Regression-Compilers' 1
    26 RegressionTests::CompilerTests2ExternalBytes RegressionTests__CompilerTests2ExternalBytes stx:goodies/regression 'tests-Regression-Compilers' 0
    27 RegressionTests::ComplexTest RegressionTests__ComplexTest stx:goodies/regression 'tests-Regression-Numbers' 1
    28 RegressionTests::CompressionStreamTest RegressionTests__CompressionStreamTest stx:goodies/regression 'autoloaded' 0
    29 RegressionTests::ContextTest2 RegressionTests__ContextTest2 stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    30 RegressionTests::CoverageInstrumentationTest RegressionTests__CoverageInstrumentationTest stx:goodies/regression 'tests-Regression' 1
    31 RegressionTests::CryptTests RegressionTests__CryptTests stx:goodies/regression 'tests-Regression' 1
    32 RegressionTests::DebuggerTest RegressionTests__DebuggerTest stx:goodies/regression 'tests-Regression' 1
    33 RegressionTests::DeepCopyTests RegressionTests__DeepCopyTests stx:goodies/regression 'tests-Regression' 1
    34 RegressionTests::DelayTest RegressionTests__DelayTest stx:goodies/regression 'tests-Regression' 1
    35 RegressionTests::DictionaryTest RegressionTests__DictionaryTest stx:goodies/regression 'tests-Regression-Collections' 1
    36 RegressionTests::DoubleMetaphoneStringComparatorTest RegressionTests__DoubleMetaphoneStringComparatorTest stx:goodies/regression 'tests-Regression' 1
    37 RegressionTests::EnumerationTests RegressionTests__EnumerationTests stx:goodies/regression 'tests-Regression-Collections' 1
    38 RegressionTests::ExceptionTest RegressionTests__ExceptionTest stx:goodies/regression 'tests-Regression' 1
    39 RegressionTests::ExternalInterfaceTests RegressionTests__ExternalInterfaceTests stx:goodies/regression 'tests-Regression' 1
    40 RegressionTests::ExternalStreamTest RegressionTests__ExternalStreamTest stx:goodies/regression 'tests-Regression-Streams' 1
    41 RegressionTests::FileOpenTest RegressionTests__FileOpenTest stx:goodies/regression 'tests-Regression-Streams' 1
    42 RegressionTests::FileStreamTest RegressionTests__FileStreamTest stx:goodies/regression 'tests-Regression-Streams' 1
    43 RegressionTests::FilenameTests RegressionTests__FilenameTests stx:goodies/regression 'tests-Regression' 1
    44 RegressionTests::FloatTest RegressionTests__FloatTest stx:goodies/regression 'tests-Regression-Numbers' 1
    45 RegressionTests::FractionTest RegressionTests__FractionTest stx:goodies/regression 'tests-Regression-Numbers' 1
    46 RegressionTests::GCTest RegressionTests__GCTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    47 RegressionTests::GraphicDrawingTest RegressionTests__GraphicDrawingTest stx:goodies/regression 'tests-Regression' 1
    48 RegressionTests::HTMLParserTests RegressionTests__HTMLParserTests stx:goodies/regression 'tests-Regression-XML' 1
    49 RegressionTests::HTTPServerTests RegressionTests__HTTPServerTests stx:goodies/regression 'tests-Regression-Services' 1
    50 RegressionTests::ImageReaderTest RegressionTests__ImageReaderTest stx:goodies/regression 'tests-Regression' 1
    51 RegressionTests::IntegerTest RegressionTests__IntegerTest stx:goodies/regression 'tests-Regression-Numbers' 1
    52 RegressionTests::JITTest RegressionTests__JITTest stx:goodies/regression 'tests-Regression-Compilers' 1
    53 RegressionTests::JavaScriptTests RegressionTests__JavaScriptTests stx:goodies/regression 'tests-Regression-Compilers' 1
    54 RegressionTests::KoelnerPhoneticCodeStringComparatorTest RegressionTests__KoelnerPhoneticCodeStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
    55 RegressionTests::LabelResizingTest RegressionTests__LabelResizingTest stx:goodies/regression 'tests-Regression' 1
    56 RegressionTests::LargeFloatTest RegressionTests__LargeFloatTest stx:goodies/regression 'tests-Regression-Numbers' 1
    57 RegressionTests::LinkedListTest RegressionTests__LinkedListTest stx:goodies/regression 'tests-Regression-Collections' 1
    58 RegressionTests::LiteralsInMethodTests RegressionTests__LiteralsInMethodTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    59 RegressionTests::LoggedStreamTests RegressionTests__LoggedStreamTests stx:goodies/regression 'tests-Regression-Streams' 1
    60 RegressionTests::MakefileTests RegressionTests__MakefileTests stx:goodies/regression 'tests-Regression' 1
    61 RegressionTests::ManyProcessesTest RegressionTests__ManyProcessesTest stx:goodies/regression 'tests-Regression' 0
    62 RegressionTests::MeasurementValueTests RegressionTests__MeasurementValueTests stx:goodies/regression 'tests-Regression' 1
    63 RegressionTests::MemoryTest RegressionTests__MemoryTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    64 RegressionTests::MetaNumbersTest RegressionTests__MetaNumbersTest stx:goodies/regression 'tests-Regression-Numbers' 1
    65 RegressionTests::MiracodeStringComparatorTest RegressionTests__MiracodeStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
    66 RegressionTests::MySQLSoundexStringComparatorTest RegressionTests__MySQLSoundexStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
    67 RegressionTests::NumberTest RegressionTests__NumberTest stx:goodies/regression 'tests-Regression-Numbers' 1
    68 RegressionTests::OS_OLE_Tests RegressionTests__OS_OLE_Tests stx:goodies/regression 'OS-Testing' 1
    69 RegressionTests::OperatingSystemTest RegressionTests__OperatingSystemTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    70 RegressionTests::OperationInQueueTests RegressionTests__OperationInQueueTests stx:goodies/regression 'tests-Regression' 1
    71 RegressionTests::PTYTest RegressionTests__PTYTest stx:goodies/regression 'tests-Regression-Streams' 1
    72 RegressionTests::ParserTests RegressionTests__ParserTests stx:goodies/regression 'tests-Regression-Compilers' 0
    73 RegressionTests::PipeStreamTest RegressionTests__PipeStreamTest stx:goodies/regression 'tests-Regression-Streams' 1
    74 RegressionTests::PowerSetTests RegressionTests__PowerSetTests stx:goodies/regression 'tests-Regression-Collections' 1
    75 RegressionTests::ProcessTest RegressionTests__ProcessTest stx:goodies/regression 'tests-Regression' 1
    76 RegressionTests::ProjectDefinitionTests RegressionTests__ProjectDefinitionTests stx:goodies/regression 'tests-Regression' 1
    77 RegressionTests::QueueTest RegressionTests__QueueTest stx:goodies/regression 'tests-Regression-Collections' 1
    78 RegressionTests::QuickTestRunner RegressionTests__QuickTestRunner stx:goodies/regression 'tests-Regression' 0
    79 RegressionTests::STCCompilerTests RegressionTests__STCCompilerTests stx:goodies/regression 'tests-Regression-Compilers' 1
    80 RegressionTests::ScaledDecimalTest RegressionTests__ScaledDecimalTest stx:goodies/regression 'tests-Regression-Numbers' 1
    81 RegressionTests::SegmentedOrderedCollectionTests RegressionTests__SegmentedOrderedCollectionTests stx:goodies/regression 'tests-Regression-Collections' 1
    82 RegressionTests::SelectorNamespacesTests RegressionTests__SelectorNamespacesTests stx:goodies/regression 'tests-Regression' 1
    83 RegressionTests::SemaphoreTest RegressionTests__SemaphoreTest stx:goodies/regression 'tests-Regression' 1
    84 RegressionTests::ServerSocketTest RegressionTests__ServerSocketTest stx:goodies/regression 'tests-Regression-Streams' 1
    85 RegressionTests::SharedQueueTest RegressionTests__SharedQueueTest stx:goodies/regression 'tests-Regression-Collections' 1
    86 RegressionTests::SmallIntegerTest RegressionTests__SmallIntegerTest stx:goodies/regression 'tests-Regression-Numbers' 1
    87 RegressionTests::SocketTests RegressionTests__SocketTests stx:goodies/regression 'tests-Regression-Streams' 1
    88 RegressionTests::SortTests RegressionTests__SortTests stx:goodies/regression 'tests-Regression-Collections' 1
    89 RegressionTests::SoundexStringComparatorTest RegressionTests__SoundexStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
    90 RegressionTests::StackFrameTest RegressionTests__StackFrameTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    91 RegressionTests::StreamTests RegressionTests__StreamTests stx:goodies/regression 'tests-Regression-Streams' 1
    92 RegressionTests::StringTests RegressionTests__StringTests stx:goodies/regression 'tests-Regression-Collections' 1
    93 RegressionTests::SunitXMLOutputTest RegressionTests__SunitXMLOutputTest stx:goodies/regression 'tests-Regression' 1
    94 RegressionTests::TSTreeTests RegressionTests__TSTreeTests stx:goodies/regression 'tests-Regression-Collections' 1
    95 RegressionTests::TestDialogs1 RegressionTests__TestDialogs1 stx:goodies/regression 'tests-Regression' 1
    96 RegressionTests::TimeAndDateTest RegressionTests__TimeAndDateTest stx:goodies/regression 'tests-Regression-DateAndTime' 1
    97 RegressionTests::TimeDurationTest RegressionTests__TimeDurationTest stx:goodies/regression 'tests-Regression-DateAndTime' 1
    98 RegressionTests::TypedArrayTests RegressionTests__TypedArrayTests stx:goodies/regression 'tests-Regression-Collections' 1
    99 RegressionTests::URLTest RegressionTests__URLTest stx:goodies/regression 'tests-Regression' 1
    100 RegressionTests::UTF8TestClass RegressionTests__UTF8TestClass stx:goodies/regression 'tests-Regression' 0
    101 RegressionTests::UninterpretedBytesTest RegressionTests__UninterpretedBytesTest stx:goodies/regression 'tests-Regression-Collections' 1
    102 RegressionTests::WeakCollectionTest RegressionTests__WeakCollectionTest stx:goodies/regression 'tests-Regression-Collections' 1
    103 RegressionTests::Win32OLETests RegressionTests__Win32OLETests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    104 RegressionTests::Win32OperatingSystemTest RegressionTests__Win32OperatingSystemTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
    105 RegressionTests::WritingToTranscriptOrStdoutTest RegressionTests__WritingToTranscriptOrStdoutTest stx:goodies/regression 'tests-Regression' 1
    106 RegressionTests::WrongMethodCalledTest RegressionTests__WrongMethodCalledTest stx:goodies/regression 'tests-Regression' 1
    107 RegressionTests::XMLCoderTests RegressionTests__XMLCoderTests stx:goodies/regression 'tests-Regression-XML' 1
    108 RegressionTests::ZipArchiveTests RegressionTests__ZipArchiveTests stx:goodies/regression 'tests-Regression' 1
    109 RegressionTests::ChangeSetTests RegressionTests__ChangeSetTests stx:goodies/regression 'tests-Regression-System-Changes' 1
    110 RegressionTests::ClassBuilderTests RegressionTests__ClassBuilderTests stx:goodies/regression 'tests-Regression-Compilers' 1
    111 RegressionTests::SnapshotRestartTests RegressionTests__SnapshotRestartTests stx:goodies/regression 'tests-Regression' 1
    112 RegressionTests::TSMultiTreeTests RegressionTests__TSMultiTreeTests stx:goodies/regression 'tests-Regression-Collections' 1
    113 RegressionTests::VMCrashTestCase RegressionTests__VMCrashTestCase stx:goodies/regression 'tests-Regression-Abstract' 1
    114 RegressionTests::VMCrashTests RegressionTests__VMCrashTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     1# automagically generated by the project definition
     2# this file is needed for stc to be able to compile modules independently.
     3# it provides information about a classes filename, category and especially namespace.
     4stx_goodies_regression stx_goodies_regression stx:goodies/regression '* Projects & Packages *' 3
     5RegressionTests::VMSpawningTestCase RegressionTests__VMSpawningTestCase stx:goodies/regression 'tests-Regression-Abstract' 1
     6RegressionTests::AssociationTests RegressionTests__AssociationTests stx:goodies/regression 'tests-Regression' 1
     7RegressionTests::BecomeTests RegressionTests__BecomeTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     8RegressionTests::BehaviorLookupObjectTests RegressionTests__BehaviorLookupObjectTests stx:goodies/regression 'tests-Regression' 1
     9RegressionTests::BinaryIOTests RegressionTests__BinaryIOTests stx:goodies/regression 'tests-Regression-Streams' 1
     10RegressionTests::BinaryTreeTester RegressionTests__BinaryTreeTester stx:goodies/regression 'tests-Regression-Collections' 1
     11RegressionTests::BlockTest RegressionTests__BlockTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     12RegressionTests::BreakpointTests RegressionTests__BreakpointTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     13RegressionTests::CECollectionExtensionTest RegressionTests__CECollectionExtensionTest stx:goodies/regression 'tests-Regression-CollectionExtensions' 1
     14RegressionTests::CESequenceableCollectionExtensionTest RegressionTests__CESequenceableCollectionExtensionTest stx:goodies/regression 'tests-Regression-CollectionExtensions' 1
     15RegressionTests::CEStringExtensionTest RegressionTests__CEStringExtensionTest stx:goodies/regression 'tests-Regression-CollectionExtensions' 1
     16RegressionTests::CachedValueTest RegressionTests__CachedValueTest stx:goodies/regression 'tests-Regression' 1
     17RegressionTests::CharacterEncoderTests RegressionTests__CharacterEncoderTests stx:goodies/regression 'tests-Regression-Collections' 1
     18RegressionTests::CharacterSetTests RegressionTests__CharacterSetTests stx:goodies/regression 'tests-Regression-Collections' 1
     19RegressionTests::CharacterTests RegressionTests__CharacterTests stx:goodies/regression 'tests-Regression' 1
     20RegressionTests::ClassAndMethodCompilingTestCase RegressionTests__ClassAndMethodCompilingTestCase stx:goodies/regression 'tests-Regression-Abstract' 1
     21RegressionTests::ClassDescriptionTests RegressionTests__ClassDescriptionTests stx:goodies/regression 'tests-Regression' 1
     22RegressionTests::ClassWithoutVersionMethod RegressionTests__ClassWithoutVersionMethod stx:goodies/regression 'tests-Regression' 0
     23RegressionTests::CollectionTests RegressionTests__CollectionTests stx:goodies/regression 'tests-Regression-Collections' 1
     24RegressionTests::CompilerTest RegressionTests__CompilerTest stx:goodies/regression 'tests-Regression-Compilers' 1
     25RegressionTests::CompilerTests2 RegressionTests__CompilerTests2 stx:goodies/regression 'tests-Regression-Compilers' 1
     26RegressionTests::CompilerTests2ExternalBytes RegressionTests__CompilerTests2ExternalBytes stx:goodies/regression 'tests-Regression-Compilers' 0
     27RegressionTests::ComplexTest RegressionTests__ComplexTest stx:goodies/regression 'tests-Regression-Numbers' 1
     28RegressionTests::CompressionStreamTest RegressionTests__CompressionStreamTest stx:goodies/regression 'autoloaded' 0
     29RegressionTests::ContextTest2 RegressionTests__ContextTest2 stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     30RegressionTests::CoverageInstrumentationTest RegressionTests__CoverageInstrumentationTest stx:goodies/regression 'tests-Regression' 1
     31RegressionTests::CryptTests RegressionTests__CryptTests stx:goodies/regression 'tests-Regression' 1
     32RegressionTests::DebuggerTest RegressionTests__DebuggerTest stx:goodies/regression 'tests-Regression' 1
     33RegressionTests::DeepCopyTests RegressionTests__DeepCopyTests stx:goodies/regression 'tests-Regression' 1
     34RegressionTests::DelayTest RegressionTests__DelayTest stx:goodies/regression 'tests-Regression' 1
     35RegressionTests::DictionaryTest RegressionTests__DictionaryTest stx:goodies/regression 'tests-Regression-Collections' 1
     36RegressionTests::DoubleMetaphoneStringComparatorTest RegressionTests__DoubleMetaphoneStringComparatorTest stx:goodies/regression 'tests-Regression' 1
     37RegressionTests::EnumerationTests RegressionTests__EnumerationTests stx:goodies/regression 'tests-Regression-Collections' 1
     38RegressionTests::ExceptionTest RegressionTests__ExceptionTest stx:goodies/regression 'tests-Regression' 1
     39RegressionTests::ExternalInterfaceTests RegressionTests__ExternalInterfaceTests stx:goodies/regression 'tests-Regression' 1
     40RegressionTests::ExternalStreamTest RegressionTests__ExternalStreamTest stx:goodies/regression 'tests-Regression-Streams' 1
     41RegressionTests::FileOpenTest RegressionTests__FileOpenTest stx:goodies/regression 'tests-Regression-Streams' 1
     42RegressionTests::FileStreamTest RegressionTests__FileStreamTest stx:goodies/regression 'tests-Regression-Streams' 1
     43RegressionTests::FilenameTests RegressionTests__FilenameTests stx:goodies/regression 'tests-Regression' 1
     44RegressionTests::FloatTest RegressionTests__FloatTest stx:goodies/regression 'tests-Regression-Numbers' 1
     45RegressionTests::FractionTest RegressionTests__FractionTest stx:goodies/regression 'tests-Regression-Numbers' 1
     46RegressionTests::GCTest RegressionTests__GCTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     47RegressionTests::GraphicDrawingTest RegressionTests__GraphicDrawingTest stx:goodies/regression 'tests-Regression' 1
     48RegressionTests::HTMLParserTests RegressionTests__HTMLParserTests stx:goodies/regression 'tests-Regression-XML' 1
     49RegressionTests::HTTPServerTests RegressionTests__HTTPServerTests stx:goodies/regression 'tests-Regression-Services' 1
     50RegressionTests::ImageReaderTest RegressionTests__ImageReaderTest stx:goodies/regression 'tests-Regression' 1
     51RegressionTests::IntegerTest RegressionTests__IntegerTest stx:goodies/regression 'tests-Regression-Numbers' 1
     52RegressionTests::JITTest RegressionTests__JITTest stx:goodies/regression 'tests-Regression-Compilers' 1
     53RegressionTests::JavaScriptTests RegressionTests__JavaScriptTests stx:goodies/regression 'tests-Regression-Compilers' 1
     54RegressionTests::KoelnerPhoneticCodeStringComparatorTest RegressionTests__KoelnerPhoneticCodeStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
     55RegressionTests::LabelResizingTest RegressionTests__LabelResizingTest stx:goodies/regression 'tests-Regression' 2
     56RegressionTests::LargeFloatTest RegressionTests__LargeFloatTest stx:goodies/regression 'tests-Regression-Numbers' 1
     57RegressionTests::LinkedListTest RegressionTests__LinkedListTest stx:goodies/regression 'tests-Regression-Collections' 1
     58RegressionTests::LiteralsInMethodTests RegressionTests__LiteralsInMethodTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     59RegressionTests::LoggedStreamTests RegressionTests__LoggedStreamTests stx:goodies/regression 'tests-Regression-Streams' 1
     60RegressionTests::MakefileTests RegressionTests__MakefileTests stx:goodies/regression 'tests-Regression' 1
     61RegressionTests::ManyProcessesTest RegressionTests__ManyProcessesTest stx:goodies/regression 'tests-Regression' 0
     62RegressionTests::MeasurementValueTests RegressionTests__MeasurementValueTests stx:goodies/regression 'tests-Regression' 1
     63RegressionTests::MemoryTest RegressionTests__MemoryTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     64RegressionTests::MetaNumbersTest RegressionTests__MetaNumbersTest stx:goodies/regression 'tests-Regression-Numbers' 1
     65RegressionTests::MiracodeStringComparatorTest RegressionTests__MiracodeStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
     66RegressionTests::MySQLSoundexStringComparatorTest RegressionTests__MySQLSoundexStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
     67RegressionTests::NumberTest RegressionTests__NumberTest stx:goodies/regression 'tests-Regression-Numbers' 1
     68RegressionTests::OS_OLE_Tests RegressionTests__OS_OLE_Tests stx:goodies/regression 'OS-Testing' 1
     69RegressionTests::OperatingSystemTest RegressionTests__OperatingSystemTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     70RegressionTests::OperationInQueueTests RegressionTests__OperationInQueueTests stx:goodies/regression 'tests-Regression' 1
     71RegressionTests::PTYTest RegressionTests__PTYTest stx:goodies/regression 'tests-Regression-Streams' 1
     72RegressionTests::ParserTests RegressionTests__ParserTests stx:goodies/regression 'tests-Regression-Compilers' 0
     73RegressionTests::PipeStreamTest RegressionTests__PipeStreamTest stx:goodies/regression 'tests-Regression-Streams' 1
     74RegressionTests::PowerSetTests RegressionTests__PowerSetTests stx:goodies/regression 'tests-Regression-Collections' 1
     75RegressionTests::ProcessTest RegressionTests__ProcessTest stx:goodies/regression 'tests-Regression' 1
     76RegressionTests::ProjectDefinitionTests RegressionTests__ProjectDefinitionTests stx:goodies/regression 'tests-Regression' 1
     77RegressionTests::QueueTest RegressionTests__QueueTest stx:goodies/regression 'tests-Regression-Collections' 1
     78RegressionTests::QuickTestRunner RegressionTests__QuickTestRunner stx:goodies/regression 'tests-Regression' 0
     79RegressionTests::STCCompilerTests RegressionTests__STCCompilerTests stx:goodies/regression 'tests-Regression-Compilers' 1
     80RegressionTests::ScaledDecimalTest RegressionTests__ScaledDecimalTest stx:goodies/regression 'tests-Regression-Numbers' 1
     81RegressionTests::SegmentedOrderedCollectionTests RegressionTests__SegmentedOrderedCollectionTests stx:goodies/regression 'tests-Regression-Collections' 1
     82RegressionTests::SelectorNamespacesTests RegressionTests__SelectorNamespacesTests stx:goodies/regression 'tests-Regression' 1
     83RegressionTests::SemaphoreTest RegressionTests__SemaphoreTest stx:goodies/regression 'tests-Regression' 1
     84RegressionTests::ServerSocketTest RegressionTests__ServerSocketTest stx:goodies/regression 'tests-Regression-Streams' 1
     85RegressionTests::SharedQueueTest RegressionTests__SharedQueueTest stx:goodies/regression 'tests-Regression-Collections' 1
     86RegressionTests::SmallIntegerTest RegressionTests__SmallIntegerTest stx:goodies/regression 'tests-Regression-Numbers' 1
     87RegressionTests::SocketTests RegressionTests__SocketTests stx:goodies/regression 'tests-Regression-Streams' 1
     88RegressionTests::SortTests RegressionTests__SortTests stx:goodies/regression 'tests-Regression-Collections' 1
     89RegressionTests::SoundexStringComparatorTest RegressionTests__SoundexStringComparatorTest stx:goodies/regression 'tests-Regression-Collections-Utilities' 1
     90RegressionTests::StackFrameTest RegressionTests__StackFrameTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     91RegressionTests::StreamTests RegressionTests__StreamTests stx:goodies/regression 'tests-Regression-Streams' 1
     92RegressionTests::StringTests RegressionTests__StringTests stx:goodies/regression 'tests-Regression-Collections' 1
     93RegressionTests::SunitXMLOutputTest RegressionTests__SunitXMLOutputTest stx:goodies/regression 'tests-Regression' 1
     94RegressionTests::TSTreeTests RegressionTests__TSTreeTests stx:goodies/regression 'tests-Regression-Collections' 1
     95RegressionTests::TestDialogs1 RegressionTests__TestDialogs1 stx:goodies/regression 'tests-Regression' 2
     96RegressionTests::TimeAndDateTest RegressionTests__TimeAndDateTest stx:goodies/regression 'tests-Regression-DateAndTime' 1
     97RegressionTests::TimeDurationTest RegressionTests__TimeDurationTest stx:goodies/regression 'tests-Regression-DateAndTime' 1
     98RegressionTests::TypedArrayTests RegressionTests__TypedArrayTests stx:goodies/regression 'tests-Regression-Collections' 1
     99RegressionTests::URLTest RegressionTests__URLTest stx:goodies/regression 'tests-Regression' 1
     100RegressionTests::UTF8TestClass RegressionTests__UTF8TestClass stx:goodies/regression 'tests-Regression' 0
     101RegressionTests::UninterpretedBytesTest RegressionTests__UninterpretedBytesTest stx:goodies/regression 'tests-Regression-Collections' 1
     102RegressionTests::WeakCollectionTest RegressionTests__WeakCollectionTest stx:goodies/regression 'tests-Regression-Collections' 1
     103RegressionTests::Win32OLETests RegressionTests__Win32OLETests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     104RegressionTests::Win32OperatingSystemTest RegressionTests__Win32OperatingSystemTest stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     105RegressionTests::WritingToTranscriptOrStdoutTest RegressionTests__WritingToTranscriptOrStdoutTest stx:goodies/regression 'tests-Regression' 1
     106RegressionTests::WrongMethodCalledTest RegressionTests__WrongMethodCalledTest stx:goodies/regression 'tests-Regression' 2
     107RegressionTests::XMLCoderTests RegressionTests__XMLCoderTests stx:goodies/regression 'tests-Regression-XML' 1
     108RegressionTests::ZipArchiveTests RegressionTests__ZipArchiveTests stx:goodies/regression 'tests-Regression' 1
     109RegressionTests::ChangeSetTests RegressionTests__ChangeSetTests stx:goodies/regression 'tests-Regression-System-Changes' 1
     110RegressionTests::ClassBuilderTests RegressionTests__ClassBuilderTests stx:goodies/regression 'tests-Regression-Compilers' 1
     111RegressionTests::SnapshotRestartTests RegressionTests__SnapshotRestartTests stx:goodies/regression 'tests-Regression' 1
     112RegressionTests::TSMultiTreeTests RegressionTests__TSMultiTreeTests stx:goodies/regression 'tests-Regression-Collections' 1
     113RegressionTests::VMCrashTestCase RegressionTests__VMCrashTestCase stx:goodies/regression 'tests-Regression-Abstract' 1
     114RegressionTests::VMCrashTests RegressionTests__VMCrashTests stx:goodies/regression 'tests-Regression-RuntimeSystem' 1
     115RegressionTests::ProcessSpawningTestCase RegressionTests__ProcessSpawningTestCase stx:goodies/regression 'tests-Regression-Abstract' 1
     116RegressionTests::RecursionLockTests RegressionTests__RecursionLockTests stx:goodies/regression 'tests-Regression' 1
  • bc.mak

    diff -r fffbc76ecc66 -r 4d2e6776489f bc.mak
    a b  
    1 # $Header$
    2 #
    3 # DO NOT EDIT
    4 # automagically generated from the projectDefinition: stx_goodies_regression.
    5 #
    6 # Warning: once you modify this file, do not rerun
    7 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
    8 #
    9 # Notice, that the name bc.mak is historical (from times, when only borland c was supported).
    10 # This file contains make rules for the win32 platform using either borland-bcc or visual-c.
    11 # It shares common definitions with the unix-make in Make.spec.
    12 # The bc.mak supports the following targets:
    13 #    bmake         - compile all st-files to a classLib (dll)
    14 #    bmake clean   - clean all temp files
    15 #    bmake clobber - clean all
    16 #
    17 # Historic Note:
    18 #  this used to contain only rules to make with borland
    19 #    (called via bmake, by "make.exe -f bc.mak")
    20 #  this has changed; it is now also possible to build using microsoft visual c
    21 #    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
    22 #
    23 TOP=..\..
    24 INCLUDE_TOP=$(TOP)\..
    25 
    26 
    27 
    28 !INCLUDE $(TOP)\rules\stdHeader_bc
    29 
    30 !INCLUDE Make.spec
    31 
    32 LIBNAME=libstx_goodies_regression
    33 MODULE_PATH=goodies\regression
    34 RESFILES=stx_goodies_regressionWINrc.$(RES)
    35 
    36 
    37 
    38 LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\communication -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\goodies\xml\stx -I$(INCLUDE_TOP)\stx\goodies\xml\vw -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libboss -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libjavascript -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
    39 LOCALDEFINES=
    40 
    41 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
    42 LOCALLIBS=
    43 
    44 OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
    45 
    46 ALL::  classLibRule
    47 
    48 classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll
    49 
    50 !INCLUDE $(TOP)\rules\stdRules_bc
    51 
    52 # build all mandatory prerequisite packages (containing superclasses) for this package
    53 prereq:
    54         pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    55         pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    56         pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    57         pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    58         pushd ..\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
    59 
    60 
    61 
    62 
    63 
    64 
    65 
    66 test: $(TOP)\goodies\builder\reports\NUL
    67         pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
    68         $(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
    69        
    70 clean::
    71         -del *.$(CSUFFIX)
    72 
    73 
    74 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
    75 $(OUTDIR)stx_goodies_regression.$(O) stx_goodies_regression.$(C) stx_goodies_regression.$(H): stx_goodies_regression.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
    76 
    77 # ENDMAKEDEPEND --- do not remove this line
    78 
    79 # **Must be at end**
    80 
    81 # Enforce recompilation of package definition class if Mercurial working
    82 # copy state changes. Together with --guessVersion it ensures that package
    83 # definition class always contains correct binary revision string.
    84 !IFDEF HGROOT
    85 $(OUTDIR)stx_goodies_regression.$(O): $(HGROOT)\.hg\dirstate
    86 !ENDIF
     1# $Header$
     2#
     3# DO NOT EDIT
     4# automagically generated from the projectDefinition: stx_goodies_regression.
     5#
     6# Warning: once you modify this file, do not rerun
     7# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
     8#
     9# Notice, that the name bc.mak is historical (from times, when only borland c was supported).
     10# This file contains make rules for the win32 platform using either borland-bcc or visual-c.
     11# It shares common definitions with the unix-make in Make.spec.
     12# The bc.mak supports the following targets:
     13#    bmake         - compile all st-files to a classLib (dll)
     14#    bmake clean   - clean all temp files
     15#    bmake clobber - clean all
     16#
     17# Historic Note:
     18#  this used to contain only rules to make with borland
     19#    (called via bmake, by "make.exe -f bc.mak")
     20#  this has changed; it is now also possible to build using microsoft visual c
     21#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
     22#
     23TOP=..\..
     24INCLUDE_TOP=$(TOP)\..
     25
     26
     27
     28!INCLUDE $(TOP)\rules\stdHeader_bc
     29
     30!INCLUDE Make.spec
     31
     32LIBNAME=libstx_goodies_regression
     33MODULE_PATH=goodies\regression
     34RESFILES=stx_goodies_regressionWINrc.$(RES)
     35
     36
     37
     38LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\communication -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\goodies\xml\stx -I$(INCLUDE_TOP)\stx\goodies\xml\vw -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libboss -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libjavascript -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
     39LOCALDEFINES=
     40
     41STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
     42LOCALLIBS=
     43
     44OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
     45
     46ALL::  classLibRule
     47
     48classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll
     49
     50!INCLUDE $(TOP)\rules\stdRules_bc
     51
     52# build all mandatory prerequisite packages (containing superclasses) for this package
     53prereq:
     54        pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     55        pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     56        pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     57        pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     58        pushd ..\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
     59
     60
     61
     62
     63
     64
     65
     66test: $(TOP)\goodies\builder\reports
     67        pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
     68        $(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
     69       
     70clean::
     71        -del *.$(CSUFFIX)
     72
     73
     74# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
     75$(OUTDIR)stx_goodies_regression.$(O) stx_goodies_regression.$(C) stx_goodies_regression.$(H): stx_goodies_regression.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
     76
     77# ENDMAKEDEPEND --- do not remove this line
     78
     79# **Must be at end**
     80
     81# Enforce recompilation of package definition class if Mercurial working
     82# copy state changes. Together with --guessVersion it ensures that package
     83# definition class always contains correct binary revision string.
     84!IFDEF HGROOT
     85$(OUTDIR)stx_goodies_regression.$(O): $(HGROOT)\.hg\dirstate
     86!ENDIF
  • bmake.bat

    diff -r fffbc76ecc66 -r 4d2e6776489f bmake.bat
    a b  
    1 @REM -------
    2 @REM make using Borland bcc32
    3 @REM type bmake, and wait...
    4 @REM do not edit - automatically generated from ProjectDefinition
    5 @REM -------
    6 @SET DEFINES=
    7 @REM Kludge got Mercurial, cannot be implemented in Borland make
    8 @FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
    9 @IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
    10 
    11 make.exe -N -f bc.mak  %DEFINES% %*
    12 
    13 
    14 
    15 
     1@REM -------
     2@REM make using Borland bcc32
     3@REM type bmake, and wait...
     4@REM do not edit - automatically generated from ProjectDefinition
     5@REM -------
     6@SET DEFINES=
     7@REM Kludge got Mercurial, cannot be implemented in Borland make
     8@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
     9@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
     10
     11make.exe -N -f bc.mak  %DEFINES% %*
     12
     13
     14
     15
  • libInit.cc

    diff -r fffbc76ecc66 -r 4d2e6776489f libInit.cc
    a b  
    1 /*
    2  * $Header$
    3  *
    4  * DO NOT EDIT
    5  * automagically generated from the projectDefinition: stx_goodies_regression.
    6  */
    7 #define __INDIRECTVMINITCALLS__
    8 #include <stc.h>
    9 
    10 #ifdef WIN32
    11 # pragma codeseg INITCODE "INITCODE"
    12 #endif
    13 
    14 #if defined(INIT_TEXT_SECTION) || defined(DLL_EXPORT)
    15 DLL_EXPORT void _libstx_goodies_regression_Init() INIT_TEXT_SECTION;
    16 DLL_EXPORT void _libstx_goodies_regression_InitDefinition() INIT_TEXT_SECTION;
    17 #endif
    18 
    19 extern void _stx_137goodies_137regression_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
    20 
    21 
    22 
    23 void _libstx_goodies_regression_InitDefinition(int pass, struct __vmData__ *__pRT__, OBJ snd)
    24 {
    25   __BEGIN_PACKAGE2__("libstx_goodies_regression__DFN", _libstx_goodies_regression_InitDefinition, "stx:goodies/regression");
    26     _stx_137goodies_137regression_Init(pass,__pRT__,snd);
    27 
    28   __END_PACKAGE__();
    29 }
    30 
    31 void _libstx_goodies_regression_Init(int pass, struct __vmData__ *__pRT__, OBJ snd)
    32 {
    33   __BEGIN_PACKAGE2__("libstx_goodies_regression", _libstx_goodies_regression_Init, "stx:goodies/regression");
    34     _stx_137goodies_137regression_Init(pass,__pRT__,snd);
    35 
    36 
    37   __END_PACKAGE__();
    38 }
     1/*
     2 * $Header$
     3 *
     4 * DO NOT EDIT
     5 * automagically generated from the projectDefinition: stx_goodies_regression.
     6 */
     7#define __INDIRECTVMINITCALLS__
     8#include <stc.h>
     9
     10#ifdef WIN32
     11# pragma codeseg INITCODE "INITCODE"
     12#endif
     13
     14#if defined(INIT_TEXT_SECTION) || defined(DLL_EXPORT)
     15DLL_EXPORT void _libstx_goodies_regression_Init() INIT_TEXT_SECTION;
     16DLL_EXPORT void _libstx_goodies_regression_InitDefinition() INIT_TEXT_SECTION;
     17#endif
     18
     19extern void _stx_137goodies_137regression_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
     20
     21
     22
     23void _libstx_goodies_regression_InitDefinition(int pass, struct __vmData__ *__pRT__, OBJ snd)
     24{
     25  __BEGIN_PACKAGE2__("libstx_goodies_regression__DFN", _libstx_goodies_regression_InitDefinition, "stx:goodies/regression");
     26    _stx_137goodies_137regression_Init(pass,__pRT__,snd);
     27
     28  __END_PACKAGE__();
     29}
     30
     31void _libstx_goodies_regression_Init(int pass, struct __vmData__ *__pRT__, OBJ snd)
     32{
     33  __BEGIN_PACKAGE2__("libstx_goodies_regression", _libstx_goodies_regression_Init, "stx:goodies/regression");
     34    _stx_137goodies_137regression_Init(pass,__pRT__,snd);
     35
     36
     37  __END_PACKAGE__();
     38}
  • mingwmake.bat

    diff -r fffbc76ecc66 -r 4d2e6776489f mingwmake.bat
    a b  
    1 @REM -------
    2 @REM make using mingw gnu compiler
    3 @REM type mingwmake, and wait...
    4 @REM do not edit - automatically generated from ProjectDefinition
    5 @REM -------
    6 @SET DEFINES=
    7 @REM Kludge got Mercurial, cannot be implemented in Borland make
    8 @FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
    9 @IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
    10 
    11 @pushd ..\..\rules
    12 @call find_mingw.bat
    13 @popd
    14 make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
    15 
    16 
    17 
    18 
     1@REM -------
     2@REM make using mingw gnu compiler
     3@REM type mingwmake, and wait...
     4@REM do not edit - automatically generated from ProjectDefinition
     5@REM -------
     6@SET DEFINES=
     7@REM Kludge got Mercurial, cannot be implemented in Borland make
     8@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
     9@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
     10
     11@pushd ..\..\rules
     12@call find_mingw.bat
     13@popd
     14make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
     15
     16
     17
     18
  • vcmake.bat

    diff -r fffbc76ecc66 -r 4d2e6776489f vcmake.bat
    a b  
    1 @REM -------
    2 @REM make using Microsoft Visual C compiler
    3 @REM type vcmake, and wait...
    4 @REM do not edit - automatically generated from ProjectDefinition
    5 @REM -------
    6 
    7 @if not defined VSINSTALLDIR (
    8     pushd ..\..\rules
    9     call vcsetup.bat
    10     popd
    11 )
    12 @SET DEFINES=
    13 @REM Kludge got Mercurial, cannot be implemented in Borland make
    14 @FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
    15 @IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
    16 
    17 
    18 make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
    19 
    20 
    21 
    22 
     1@REM -------
     2@REM make using Microsoft Visual C compiler
     3@REM type vcmake, and wait...
     4@REM do not edit - automatically generated from ProjectDefinition
     5@REM -------
     6
     7@if not defined VSINSTALLDIR (
     8    pushd ..\..\rules
     9    call vcsetup.bat
     10    popd
     11)
     12@SET DEFINES=
     13@REM Kludge got Mercurial, cannot be implemented in Borland make
     14@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
     15@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
     16
     17
     18make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
     19
     20
     21
     22