Refactor the PAL test framework to be useable in our CI system, and enable it for testing
The existing PAL tests are problematic in a few ways for our CI.
1. They are large in terms of disk space used per test, this interferes with building them properly, especially as they are part of the product build, and not of the test build
2. While part of the product build, the option to build them was well hidden.
3. The tests are not related to our existing tests, and in particular are not driven from managed xunit wrappers.
The change here has 4 components
1. Reduce the volume of the binaries such that they can be passed from a product build to a test job effectively. This is done by merging all tests which are not strictly dependent on secondary libraries.
- This was done via a tool which parsed and replaced all of the CMakeFiles.txt
- And then manual editing to remove all duplicate global symbols
2. The build flag for building the tests has been exposed as a first class option to build-runtime, as well as through the subset mechanism. As of this change, developers who wish to build the tests should use the clr.paltests subset to build the tests.
3. As the tests do not have normal xunit wrappers, but they *do* have a script which will generate xunit output, they cannot quite be run in the existing helix pathway. Add a separate path for launch the appropriate helix workitem as part of outerloop test runs.
4. A new issue exclusion mechanism has been built. Add exclusions by modifying src/coreclr/src/pal/tests/palsuite/issues.targets
- There are a number of failures in the current test suite that should probably be investigated, but making meaningful changes to the tests should not be part of this change.
Build CoreCLR with PAL tests on the Unix machine:
-```sh
-./src/coreclr/build-runtime.sh -skipgenerateversion -nopgooptimize \
- -cmakeargs -DCLR_CMAKE_BUILD_TESTS=1
+```sh ./build.sh clr.paltests
```
Run tests:
+To run all tests including disabled tests
+```sh
+./src/coreclr/src/pal/tests/palsuite/runpaltests.sh $(pwd)/artifacts/bin/coreclr/$(uname).x64.Debug/paltests
+# on macOS, replace $(uname) with OSX
+```
+To only run enabled tests for the platform the tests were built for:
```sh
-./src/coreclr/src/pal/tests/palsuite/runpaltests.sh $(pwd)/artifacts/obj/coreclr/$(uname).x64.Debug
+artifacts/bin/coreclr/$(uname).x64.Debug/paltests/runpaltests.sh $(pwd)/artifacts/bin/coreclr/$(uname).x64.Debug/paltests
+# on macOS, replace $(uname) with OSX
```
Test results will go into: `/tmp/PalTestOutput/default/pal_tests.xml`
+
+To disable tests in the CI edit
+`src/coreclr/src/pal/tests/palsuite/issues.targets`
\ No newline at end of file
</PropertyGroup>
<PropertyGroup>
+ <_subset>$(_subset.Replace('+clr.paltests+', '+clr.paltests+clr.paltestlist+'))</_subset>
<_subset>$(_subset.Replace('+clr+', '+$(DefaultCoreClrSubsets)+'))</_subset>
<_subset>$(_subset.Replace('+mono+', '+$(DefaultMonoSubsets)+'))</_subset>
<_subset>$(_subset.Replace('+libs+', '+$(DefaultLibrariesSubsets)+'))</_subset>
<!-- CoreClr -->
<SubsetName Include="Clr" Description="The CoreCLR runtime, LinuxDac, CoreLib (+ native), tools and packages." />
<SubsetName Include="Clr.Runtime" Description="The CoreCLR .NET runtime." />
+ <SubsetName Include="Clr.PalTests" Description="The CoreCLR PAL tests." />
+ <SubsetName Include="Clr.PalTestList" Description="Generate the list of the CoreCLR PAL tests. When using the command line, use Clr.PalTests instead." />
<SubsetName Include="Clr.Jit" Description="The JIT for the CoreCLR .NET runtime." />
<SubsetName Include="Clr.AllJits" Description="All of the cross-targeting JIT compilers for the CoreCLR .NET runtime." />
<SubsetName Include="Clr.CoreLib" Description="The managed System.Private.CoreLib library for CoreCLR." />
<ClrRuntimeBuildSubsets>$(ClrRuntimeBuildSubsets);ClrJitSubset=true</ClrRuntimeBuildSubsets>
</PropertyGroup>
+ <PropertyGroup Condition="$(_subset.Contains('+clr.paltests+'))">
+ <ClrRuntimeBuildSubsets>$(ClrRuntimeBuildSubsets);ClrPalTestsSubset=true</ClrRuntimeBuildSubsets>
+ </PropertyGroup>
+
<PropertyGroup Condition="$(_subset.Contains('+clr.alljits+'))">
<ClrRuntimeBuildSubsets>$(ClrRuntimeBuildSubsets);ClrAllJitsSubset=true;ClrJitSubset=true</ClrRuntimeBuildSubsets>
</PropertyGroup>
<ProjectToBuild Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);$(ClrRuntimeBuildSubsets)" Category="clr" />
</ItemGroup>
+ <ItemGroup Condition="$(_subset.Contains('+clr.paltestlist+'))">
+ <ProjectToBuild Include="$(CoreClrProjectRoot)src/pal/tests/palsuite/producepaltestlist.proj" />
+ </ItemGroup>
+
<ItemGroup Condition="$(_subset.Contains('+linuxdac+')) and $([MSBuild]::IsOsPlatform(Windows)) and '$(TargetArchitecture)' != 'x86'">
<ProjectToBuild Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);$(ClrDefaultRuntimeBuildSubsets);CrossDac=linux" Category="clr" />
</ItemGroup>
endif()
endfunction()
-# install_clr(TARGETS TARGETS targetName [targetName2 ...] [ADDITIONAL_DESTINATION destination])
+# install_clr(TARGETS TARGETS targetName [targetName2 ...] [ADDITIONAL_DESTINATIONS destination])
function(install_clr)
- set(oneValueArgs ADDITIONAL_DESTINATION)
- set(multiValueArgs TARGETS)
- cmake_parse_arguments(INSTALL_CLR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGV})
+ set(multiValueArgs TARGETS ADDITIONAL_DESTINATIONS)
+ cmake_parse_arguments(INSTALL_CLR "" "" "${multiValueArgs}" ${ARGV})
if ("${INSTALL_CLR_TARGETS}" STREQUAL "")
message(FATAL_ERROR "At least one target must be passed to install_clr(TARGETS )")
set(destinations ".")
- if (NOT "${INSTALL_CLR_ADDITIONAL_DESTINATION}" STREQUAL "")
- list(APPEND destinations ${INSTALL_CLR_ADDITIONAL_DESTINATION})
+ if (NOT "${INSTALL_CLR_ADDITIONAL_DESTINATIONS}" STREQUAL "")
+ list(APPEND destinations ${INSTALL_CLR_ADDITIONAL_DESTINATIONS})
endif()
foreach(targetName ${INSTALL_CLR_TARGETS})
runCrossGen: ${{ and(eq(parameters.readyToRun, true), ne(parameters.crossgen2, true)) }}
runCrossGen2: ${{ and(eq(parameters.readyToRun, true), eq(parameters.crossgen2, true)) }}
+ ${{ if and(ne(parameters.testGroup, 'innerloop'), eq(parameters.runtimeFlavor, 'coreclr')) }}:
+ runPALTestsDir: '$(coreClrProductRootFolderPath)/paltests'
+
compositeBuildMode: ${{ parameters.compositeBuildMode }}
runInUnloadableContext: ${{ parameters.runInUnloadableContext }}
timeoutPerTestInMinutes: ''
runCrossGen: ''
runCrossGen2: ''
+ runPALTestsDir: ''
compositeBuildMode: false
helixProjectArguments: ''
runInUnloadableContext: ''
_LongRunningGcTests: ${{ parameters.longRunningGcTests }}
_GcSimulatorTests: ${{ parameters.gcSimulatorTests }}
_Scenarios: ${{ join(',', parameters.scenarios) }}
+ _PALTestsDir: ${{ parameters.runPALTestsDir }}
_TimeoutPerTestCollectionInMinutes: ${{ parameters.timeoutPerTestCollectionInMinutes }}
_TimeoutPerTestInMinutes: ${{ parameters.timeoutPerTestInMinutes }}
runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }}
- ${{ if eq(parameters.testGroup, 'clrinterpreter') }}:
- name: clrInterpreterBuildArg
value: '-cmakeargs "-DFEATURE_INTERPRETER=1"'
+
+ - name: clrBuildPALTestsBuildArg
+ value: ''
+ - ${{ if ne(parameters.testGroup, 'innerloop') }}:
+ - name: clrBuildPALTestsBuildArg
+ value: '-paltests '
- ${{ parameters.variables }}
# Build CoreCLR Runtime
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- - script: $(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) $(crossArg) $(osArg) -ci $(compilerArg) $(officialBuildIdArg) $(clrInterpreterBuildArg)
+ - script: $(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) $(crossArg) $(osArg) -ci $(compilerArg) $(clrBuildPALTestsBuildArg) $(officialBuildIdArg) $(clrInterpreterBuildArg)
displayName: Build CoreCLR Runtime
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci $(enforcePgoArg) $(officialBuildIdArg) $(clrInterpreterBuildArg)
displayName: Disk Usage after Build
# Build CoreCLR Managed Components
- - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset clr.corelib+clr.nativecorelib+clr.tools+clr.packages $(crossArg) -arch $(archType) $(osArg) -c $(buildConfig) $(officialBuildIdArg) -ci
+ - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset clr.corelib+clr.nativecorelib+clr.tools+clr.packages+clr.paltestlist $(crossArg) -arch $(archType) $(osArg) -c $(buildConfig) $(officialBuildIdArg) -ci
displayName: Build managed product components and packages
# Run CoreCLR Tools unit tests
set __SkipGenerateVersion=0
set __RestoreOptData=1
set __BuildJit=1
+set __BuildPALTests=0
set __BuildAllJits=1
set __BuildRuntime=1
set __CrossArch=
usage_list+=("-skipjit: skip building jit.")
usage_list+=("-skipalljits: skip building crosstargetting jits.")
usage_list+=("-skipruntime: skip building runtime.")
+usage_list+=("-paltests: build the pal tests.")
setup_dirs_local()
{
skipruntime|-skipruntime)
__BuildRuntime=0
;;
+
+ paltests|-paltests)
+ __BuildPALTests=1
+ ;;
*)
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
;;
__VerboseBuild=0
__ValidateCrossArg=1
__CMakeArgs=""
-__BuildJit=1
+__BuildPALTests=0
__BuildAllJits=1
__BuildRuntime=1
# Build the coreclr (native) components.
__CMakeArgs="-DCLR_CMAKE_PGO_INSTRUMENT=$__PgoInstrument -DCLR_CMAKE_OPTDATA_PATH=$__PgoOptDataPath -DCLR_CMAKE_PGO_OPTIMIZE=$__PgoOptimize -DCLR_REPO_ROOT_DIR=\"$__RepoRootDir\" $__CMakeArgs"
__CMakeArgs="-DCLR_CMAKE_BUILD_SUBSET_JIT=$__BuildJit -DCLR_CMAKE_BUILD_SUBSET_ALLJITS=$__BuildAllJits -DCLR_CMAKE_BUILD_SUBSET_RUNTIME=$__BuildRuntime $__CMakeArgs"
+__CMakeArgs="-DCLR_CMAKE_BUILD_TESTS=$__BuildPALTests $__CMakeArgs"
if [[ "$__SkipConfigure" == 0 && "$__CodeCoverage" == 1 ]]; then
__CMakeArgs="-DCLR_CMAKE_ENABLE_CODE_COVERAGE=1 $__CMakeArgs"
<_CoreClrBuildArg Condition="'$(NoPgoOptimize)' == 'true'" Include="-nopgooptimize" />
<_CoreClrBuildArg Condition="'$(ClrRuntimeSubset)' != 'true'" Include="-skipruntime" />
<_CoreClrBuildArg Condition="'$(ClrJitSubset)' != 'true'" Include="-skipjit" />
+ <_CoreClrBuildArg Condition="'$(ClrPalTestsSubset)' == 'true'" Include="-paltests" />
<_CoreClrBuildArg Condition="'$(ClrAllJitsSubset)' != 'true'" Include="-skipalljits" />
<_CoreClrBuildArg Condition="'$(NoPgoOptimize)' == 'true'" Include="-nopgooptimize" />
</ItemGroup>
endif(CLR_CMAKE_HOST_WIN32)
-install_clr(TARGETS createdump ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS createdump ADDITIONAL_DESTINATIONS sharedFramework)
)
# add the install targets
-install_clr(TARGETS clretwrc ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS clretwrc ADDITIONAL_DESTINATIONS sharedFramework)
add_dependencies(clretwrc eventing_headers)
target_link_libraries(dbgshim ${DBGSHIM_LIBRARIES})
# add the install targets
-install_clr(TARGETS dbgshim ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS dbgshim ADDITIONAL_DESTINATIONS sharedFramework)
endif(FEATURE_SINGLE_FILE_DIAGNOSTICS)
# add the install targets
-install_clr(TARGETS mscordaccore ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS mscordaccore ADDITIONAL_DESTINATIONS sharedFramework)
if(CLR_CMAKE_HOST_WIN32)
set(LONG_NAME_HOST_ARCH ${CLR_CMAKE_HOST_ARCH})
endif(FEATURE_SINGLE_FILE_DIAGNOSTICS)
# add the install targets
-install_clr(TARGETS mscordbi ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS mscordbi ADDITIONAL_DESTINATIONS sharedFramework)
endif(CLR_CMAKE_TARGET_WIN32)
# add the install targets
-install_clr(TARGETS coreclr ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS coreclr ADDITIONAL_DESTINATIONS sharedFramework)
# publish coreclr_static lib
_install(TARGETS coreclr_static DESTINATION lib)
include.rc
)
- install_clr(TARGETS mscorrc ADDITIONAL_DESTINATION sharedFramework)
+ install_clr(TARGETS mscorrc ADDITIONAL_DESTINATIONS sharedFramework)
else()
build_resources(${CMAKE_CURRENT_SOURCE_DIR}/include.rc mscorrc TARGET_CPP_FILE)
function(create_standalone_jit)
- set(oneValueArgs TARGET OS ARCH ADDITIONAL_DESTINATION)
+ set(oneValueArgs TARGET OS ARCH)
+ set(multiValueArgs ADDITIONAL_DESTINATIONS)
set(options NOALTJIT)
- cmake_parse_arguments(TARGETDETAILS "${options}" "${oneValueArgs}" "" ${ARGN})
+ cmake_parse_arguments(TARGETDETAILS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(JIT_ARCH_LINK_LIBRARIES gcinfo_${TARGETDETAILS_OS}_${TARGETDETAILS_ARCH})
clr_unknown_arch()
endif()
- if (TARGETDETAILS_ADDITIONAL_DESTINATION STREQUAL "")
+ if (TARGETDETAILS_ADDITIONAL_DESTINATIONS STREQUAL "")
add_jit(${TARGETDETAILS_TARGET})
else()
- add_jit(${TARGETDETAILS_TARGET} ADDITIONAL_DESTINATION "${TARGETDETAILS_ADDITIONAL_DESTINATION}")
+ add_jit(${TARGETDETAILS_TARGET} ADDITIONAL_DESTINATIONS "${TARGETDETAILS_ADDITIONAL_DESTINATIONS}")
endif()
set_target_definitions_to_custom_os_and_arch(${ARGN})
endif(CLR_CMAKE_HOST_UNIX)
# Shared function for generating JIT
-# optional arguments: ADDITIONAL_DESTINATION path
+# optional arguments: ADDITIONAL_DESTINATIONS path
function(add_jit jitName)
set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
set(TARGET_OS_NAME win)
endif()
-create_standalone_jit(TARGET clrjit OS ${TARGET_OS_NAME} ARCH ${ARCH_TARGET_NAME} NOALTJIT ADDITIONAL_DESTINATION sharedFramework)
+create_standalone_jit(TARGET clrjit OS ${TARGET_OS_NAME} ARCH ${ARCH_TARGET_NAME} NOALTJIT ADDITIONAL_DESTINATIONS sharedFramework)
# Enable profile guided optimization
add_pgo(clrjit)
# Install the static eventprovider library
_install(TARGETS eventprovider DESTINATION lib)
# Install the static coreclrtraceptprovider library
-install_clr(TARGETS coreclrtraceptprovider ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS coreclrtraceptprovider ADDITIONAL_DESTINATIONS sharedFramework paltests)
add_compile_options(-Wno-int-to-pointer-cast)
endif()
-# TODO: make these tests compile
-# add_subdirectory(composite)
-add_subdirectory(exception_handling)
-
-add_subdirectory(c_runtime)
-add_subdirectory(debug_api)
-add_subdirectory(filemapping_memmgt)
-add_subdirectory(file_io)
-add_subdirectory(loader)
-add_subdirectory(locale_info)
-add_subdirectory(miscellaneous)
-add_subdirectory(pal_specific)
-add_subdirectory(samples)
-add_subdirectory(threading)
+#these PAL tests have special build needs, and are built separately
+add_subdirectory(exception_handling/pal_sxs/test1)
if(FEATURE_EVENT_TRACE)
add_subdirectory(eventprovider)
endif(FEATURE_EVENT_TRACE)
+
+_add_executable(paltests
+ paltests.cpp
+ common/palsuite.cpp
+ #composite/object_management/event/nonshared/event.cpp
+ #composite/object_management/event/nonshared/main.cpp
+ #composite/object_management/event/shared/event.cpp
+ #composite/object_management/event/shared/main.cpp
+ #composite/object_management/mutex/nonshared/main.cpp
+ #composite/object_management/mutex/nonshared/mutex.cpp
+ #composite/object_management/mutex/shared/main.cpp
+ #composite/object_management/mutex/shared/mutex.cpp
+ #composite/object_management/semaphore/nonshared/main.cpp
+ #composite/object_management/semaphore/nonshared/semaphore.cpp
+ #composite/object_management/semaphore/shared/main.cpp
+ #composite/object_management/semaphore/shared/semaphore.cpp
+ #composite/synchronization/criticalsection/criticalsection.cpp
+ #composite/synchronization/criticalsection/mainWrapper.cpp
+ #composite/synchronization/nativecriticalsection/mtx_critsect.cpp
+ #composite/synchronization/nativecriticalsection/pal_composite_native_cs.cpp
+ #composite/synchronization/nativecriticalsection/resultbuffer.cpp
+ #composite/synchronization/nativecs_interlocked/interlocked.cpp
+ #composite/synchronization/nativecs_interlocked/mtx_critsect.cpp
+ #composite/synchronization/nativecs_interlocked/pal_composite_native_cs.cpp
+ #composite/synchronization/nativecs_interlocked/resultbuffer.cpp
+ #composite/threading/threadsuspension/mainWrapper.cpp
+ #composite/threading/threadsuspension/threadsuspension.cpp
+ #composite/threading/threadsuspension_switchthread/mainWrapper.cpp
+ #composite/threading/threadsuspension_switchthread/threadsuspension.cpp
+ #composite/wfmo/main.cpp
+ #composite/wfmo/mutex.cpp
+ c_runtime/abs/test1/abs.cpp
+ c_runtime/acos/test1/test1.cpp
+ c_runtime/acosf/test1/test1.cpp
+ c_runtime/acosh/test1/test1.cpp
+ c_runtime/acoshf/test1/test1.cpp
+ c_runtime/asin/test1/test1.cpp
+ c_runtime/asinf/test1/test1.cpp
+ c_runtime/asinh/test1/test1.cpp
+ c_runtime/asinhf/test1/test1.cpp
+ c_runtime/atan/test1/test1.cpp
+ c_runtime/atan2/test1/test1.cpp
+ c_runtime/atan2f/test1/test1.cpp
+ c_runtime/atanf/test1/test1.cpp
+ c_runtime/atanh/test1/test1.cpp
+ c_runtime/atanhf/test1/test1.cpp
+ c_runtime/atof/test1/test1.cpp
+ c_runtime/atoi/test1/test1.cpp
+ c_runtime/bsearch/test1/test1.cpp
+ c_runtime/bsearch/test2/test2.cpp
+ c_runtime/cbrt/test1/test1.cpp
+ c_runtime/cbrtf/test1/test1.cpp
+ c_runtime/ceil/test1/test1.cpp
+ c_runtime/ceilf/test1/test1.cpp
+ c_runtime/cos/test1/test1.cpp
+ c_runtime/cosf/test1/test1.cpp
+ c_runtime/cosh/test1/test1.cpp
+ c_runtime/coshf/test1/test1.cpp
+ c_runtime/errno/test1/test1.cpp
+ c_runtime/errno/test2/test2.cpp
+ c_runtime/exit/test1/test1.cpp
+ c_runtime/exit/test2/test2.cpp
+ c_runtime/exp/test1/test1.cpp
+ c_runtime/expf/test1/test1.cpp
+ c_runtime/fabs/test1/test1.cpp
+ c_runtime/fabsf/test1/test1.cpp
+ c_runtime/fclose/test1/test1.cpp
+ c_runtime/fclose/test2/test2.cpp
+ c_runtime/ferror/test1/test1.cpp
+ c_runtime/ferror/test2/test2.cpp
+ c_runtime/fflush/test1/test1.cpp
+ c_runtime/fgets/test1/test1.cpp
+ c_runtime/fgets/test2/test2.cpp
+ c_runtime/fgets/test3/test3.cpp
+ c_runtime/floor/test1/test1.cpp
+ c_runtime/floorf/test1/test1.cpp
+ c_runtime/fma/test1/test1.cpp
+ c_runtime/fmaf/test1/test1.cpp
+ c_runtime/fmod/test1/test1.cpp
+ c_runtime/fmodf/test1/test1.cpp
+ c_runtime/fopen/test1/test1.cpp
+ c_runtime/fopen/test2/test2.cpp
+ c_runtime/fopen/test3/test3.cpp
+ c_runtime/fopen/test4/test4.cpp
+ c_runtime/fopen/test5/test5.cpp
+ c_runtime/fopen/test6/test6.cpp
+ c_runtime/fopen/test7/test7.cpp
+ c_runtime/fprintf/test1/test1.cpp
+ c_runtime/fprintf/test10/test10.cpp
+ c_runtime/fprintf/test11/test11.cpp
+ c_runtime/fprintf/test12/test12.cpp
+ c_runtime/fprintf/test13/test13.cpp
+ c_runtime/fprintf/test14/test14.cpp
+ c_runtime/fprintf/test15/test15.cpp
+ c_runtime/fprintf/test16/test16.cpp
+ c_runtime/fprintf/test17/test17.cpp
+ c_runtime/fprintf/test18/test18.cpp
+ c_runtime/fprintf/test19/test19.cpp
+ c_runtime/fprintf/test2/test2.cpp
+ c_runtime/fprintf/test3/test3.cpp
+ c_runtime/fprintf/test4/test4.cpp
+ c_runtime/fprintf/test5/test5.cpp
+ c_runtime/fprintf/test6/test6.cpp
+ c_runtime/fprintf/test7/test7.cpp
+ c_runtime/fprintf/test8/test8.cpp
+ c_runtime/fprintf/test9/test9.cpp
+ c_runtime/fputs/test1/test1.cpp
+ c_runtime/fputs/test2/test2.cpp
+ c_runtime/fread/test1/test1.cpp
+ c_runtime/fread/test2/test2.cpp
+ c_runtime/fread/test3/test3.cpp
+ c_runtime/free/test1/test1.cpp
+ c_runtime/fseek/test1/test1.cpp
+ c_runtime/ftell/test1/ftell.cpp
+ c_runtime/fwprintf/test1/test1.cpp
+ c_runtime/fwprintf/test10/test10.cpp
+ c_runtime/fwprintf/test11/test11.cpp
+ c_runtime/fwprintf/test12/test12.cpp
+ c_runtime/fwprintf/test13/test13.cpp
+ c_runtime/fwprintf/test14/test14.cpp
+ c_runtime/fwprintf/test15/test15.cpp
+ c_runtime/fwprintf/test16/test16.cpp
+ c_runtime/fwprintf/test17/test17.cpp
+ c_runtime/fwprintf/test18/test18.cpp
+ c_runtime/fwprintf/test19/test19.cpp
+ c_runtime/fwprintf/test2/test2.cpp
+ c_runtime/fwprintf/test3/test3.cpp
+ c_runtime/fwprintf/test4/test4.cpp
+ c_runtime/fwprintf/test5/test5.cpp
+ c_runtime/fwprintf/test6/test6.cpp
+ c_runtime/fwprintf/test7/test7.cpp
+ c_runtime/fwprintf/test8/test8.cpp
+ c_runtime/fwprintf/test9/test9.cpp
+ c_runtime/fwrite/test1/test1.cpp
+ c_runtime/getenv/test1/test1.cpp
+ c_runtime/getenv/test2/test2.cpp
+ c_runtime/getenv/test3/test3.cpp
+ c_runtime/ilogb/test1/test1.cpp
+ c_runtime/ilogbf/test1/test1.cpp
+ c_runtime/isalnum/test1/test1.cpp
+ c_runtime/isalpha/test1/test1.cpp
+ c_runtime/isdigit/test1/test1.cpp
+ c_runtime/islower/test1/test1.cpp
+ c_runtime/isprint/test1/isprint.cpp
+ c_runtime/isprint/test2/test2.cpp
+ c_runtime/isspace/test1/test1.cpp
+ c_runtime/isupper/test1/test1.cpp
+ c_runtime/iswdigit/test1/test1.cpp
+ #c_runtime/iswprint/test1/test1.cpp
+ c_runtime/iswspace/test1/test1.cpp
+ c_runtime/iswupper/test1/test1.cpp
+ c_runtime/isxdigit/test1/test1.cpp
+ c_runtime/llabs/test1/test1.cpp
+ c_runtime/log/test1/test1.cpp
+ c_runtime/log10/test1/test1.cpp
+ c_runtime/log10f/test1/test1.cpp
+ c_runtime/log2/test1/test1.cpp
+ c_runtime/log2f/test1/test1.cpp
+ c_runtime/logf/test1/test1.cpp
+ c_runtime/malloc/test1/test1.cpp
+ c_runtime/malloc/test2/test2.cpp
+ c_runtime/memchr/test1/test1.cpp
+ c_runtime/memcmp/test1/test1.cpp
+ c_runtime/memcpy/test1/test1.cpp
+ c_runtime/memmove/test1/test1.cpp
+ c_runtime/memset/test1/test1.cpp
+ c_runtime/modf/test1/test1.cpp
+ c_runtime/modff/test1/test1.cpp
+ c_runtime/pow/test1/test1.cpp
+ c_runtime/powf/test1/test1.cpp
+ c_runtime/printf/test1/test1.cpp
+ c_runtime/printf/test10/test10.cpp
+ c_runtime/printf/test11/test11.cpp
+ c_runtime/printf/test12/test12.cpp
+ c_runtime/printf/test13/test13.cpp
+ c_runtime/printf/test14/test14.cpp
+ c_runtime/printf/test15/test15.cpp
+ c_runtime/printf/test16/test16.cpp
+ c_runtime/printf/test17/test17.cpp
+ c_runtime/printf/test18/test18.cpp
+ c_runtime/printf/test19/test19.cpp
+ c_runtime/printf/test2/test2.cpp
+ c_runtime/printf/test3/test3.cpp
+ c_runtime/printf/test4/test4.cpp
+ c_runtime/printf/test5/test5.cpp
+ c_runtime/printf/test6/test6.cpp
+ c_runtime/printf/test7/test7.cpp
+ c_runtime/printf/test8/test8.cpp
+ c_runtime/printf/test9/test9.cpp
+ c_runtime/qsort/test1/test1.cpp
+ c_runtime/qsort/test2/test2.cpp
+ c_runtime/rand_srand/test1/test1.cpp
+ c_runtime/realloc/test1/test1.cpp
+ c_runtime/scalbn/test1/test1.cpp
+ c_runtime/scalbnf/test1/test1.cpp
+ c_runtime/sin/test1/test1.cpp
+ c_runtime/sinf/test1/test1.cpp
+ c_runtime/sinh/test1/test1.cpp
+ c_runtime/sinhf/test1/test1.cpp
+ c_runtime/sprintf_s/test1/test1.cpp
+ c_runtime/sprintf_s/test10/test10.cpp
+ c_runtime/sprintf_s/test11/test11.cpp
+ c_runtime/sprintf_s/test12/test12.cpp
+ c_runtime/sprintf_s/test13/test13.cpp
+ c_runtime/sprintf_s/test14/test14.cpp
+ c_runtime/sprintf_s/test15/test15.cpp
+ c_runtime/sprintf_s/test16/test16.cpp
+ c_runtime/sprintf_s/test17/test17.cpp
+ c_runtime/sprintf_s/test18/test18.cpp
+ c_runtime/sprintf_s/test19/test19.cpp
+ c_runtime/sprintf_s/test2/test2.cpp
+ c_runtime/sprintf_s/test3/test3.cpp
+ c_runtime/sprintf_s/test4/test4.cpp
+ c_runtime/sprintf_s/test6/test6.cpp
+ c_runtime/sprintf_s/test7/test7.cpp
+ c_runtime/sprintf_s/test8/test8.cpp
+ c_runtime/sprintf_s/test9/test9.cpp
+ c_runtime/sqrt/test1/test1.cpp
+ c_runtime/sqrtf/test1/test1.cpp
+ c_runtime/sscanf_s/test1/test1.cpp
+ c_runtime/sscanf_s/test10/test10.cpp
+ c_runtime/sscanf_s/test11/test11.cpp
+ c_runtime/sscanf_s/test12/test12.cpp
+ c_runtime/sscanf_s/test13/test13.cpp
+ c_runtime/sscanf_s/test14/test14.cpp
+ c_runtime/sscanf_s/test15/test15.cpp
+ c_runtime/sscanf_s/test16/test16.cpp
+ c_runtime/sscanf_s/test17/test17.cpp
+ c_runtime/sscanf_s/test2/test2.cpp
+ c_runtime/sscanf_s/test3/test3.cpp
+ c_runtime/sscanf_s/test4/test4.cpp
+ c_runtime/sscanf_s/test5/test5.cpp
+ c_runtime/sscanf_s/test6/test6.cpp
+ c_runtime/sscanf_s/test7/test7.cpp
+ c_runtime/sscanf_s/test8/test8.cpp
+ c_runtime/sscanf_s/test9/test9.cpp
+ c_runtime/strcat/test1/test1.cpp
+ c_runtime/strchr/test1/test1.cpp
+ c_runtime/strcmp/test1/test1.cpp
+ c_runtime/strcpy/test1/test1.cpp
+ c_runtime/strcspn/test1/test1.cpp
+ c_runtime/strlen/test1/test1.cpp
+ c_runtime/strncat/test1/test1.cpp
+ c_runtime/strncmp/test1/test1.cpp
+ c_runtime/strncpy/test1/test1.cpp
+ c_runtime/strpbrk/test1/test1.cpp
+ c_runtime/strrchr/test1/test1.cpp
+ c_runtime/strspn/test1/test1.cpp
+ c_runtime/strstr/test1/test1.cpp
+ c_runtime/strtod/test1/test1.cpp
+ c_runtime/strtod/test2/test2.cpp
+ c_runtime/strtok/test1/test1.cpp
+ c_runtime/strtoul/test1/test1.cpp
+ c_runtime/swprintf/test1/test1.cpp
+ c_runtime/swprintf/test10/test10.cpp
+ c_runtime/swprintf/test11/test11.cpp
+ c_runtime/swprintf/test12/test12.cpp
+ c_runtime/swprintf/test13/test13.cpp
+ c_runtime/swprintf/test14/test14.cpp
+ c_runtime/swprintf/test15/test15.cpp
+ c_runtime/swprintf/test16/test16.cpp
+ c_runtime/swprintf/test17/test17.cpp
+ c_runtime/swprintf/test18/test18.cpp
+ c_runtime/swprintf/test19/test19.cpp
+ c_runtime/swprintf/test2/test2.cpp
+ c_runtime/swprintf/test3/test3.cpp
+ c_runtime/swprintf/test4/test4.cpp
+ c_runtime/swprintf/test6/test6.cpp
+ c_runtime/swprintf/test7/test7.cpp
+ c_runtime/swprintf/test8/test8.cpp
+ c_runtime/swprintf/test9/test9.cpp
+ c_runtime/swscanf/test1/test1.cpp
+ c_runtime/swscanf/test10/test10.cpp
+ c_runtime/swscanf/test11/test11.cpp
+ c_runtime/swscanf/test12/test12.cpp
+ c_runtime/swscanf/test13/test13.cpp
+ c_runtime/swscanf/test14/test14.cpp
+ c_runtime/swscanf/test15/test15.cpp
+ c_runtime/swscanf/test16/test16.cpp
+ c_runtime/swscanf/test17/test17.cpp
+ c_runtime/swscanf/test2/test2.cpp
+ c_runtime/swscanf/test3/test3.cpp
+ c_runtime/swscanf/test4/test4.cpp
+ c_runtime/swscanf/test5/test5.cpp
+ c_runtime/swscanf/test6/test6.cpp
+ c_runtime/swscanf/test7/test7.cpp
+ c_runtime/swscanf/test8/test8.cpp
+ c_runtime/swscanf/test9/test9.cpp
+ c_runtime/tan/test1/test1.cpp
+ c_runtime/tanf/test1/test1.cpp
+ c_runtime/tanh/test1/test1.cpp
+ c_runtime/tanhf/test1/test1.cpp
+ c_runtime/time/test1/test1.cpp
+ c_runtime/tolower/test1/test1.cpp
+ c_runtime/toupper/test1/test1.cpp
+ c_runtime/towlower/test1/test1.cpp
+ c_runtime/towupper/test1/test1.cpp
+ c_runtime/vfprintf/test1/test1.cpp
+ c_runtime/vfprintf/test10/test10.cpp
+ c_runtime/vfprintf/test11/test11.cpp
+ c_runtime/vfprintf/test12/test12.cpp
+ c_runtime/vfprintf/test13/test13.cpp
+ c_runtime/vfprintf/test14/test14.cpp
+ c_runtime/vfprintf/test15/test15.cpp
+ c_runtime/vfprintf/test16/test16.cpp
+ c_runtime/vfprintf/test17/test17.cpp
+ c_runtime/vfprintf/test18/test18.cpp
+ c_runtime/vfprintf/test19/test19.cpp
+ c_runtime/vfprintf/test2/test2.cpp
+ c_runtime/vfprintf/test3/test3.cpp
+ c_runtime/vfprintf/test4/test4.cpp
+ c_runtime/vfprintf/test5/test5.cpp
+ c_runtime/vfprintf/test6/test6.cpp
+ c_runtime/vfprintf/test7/test7.cpp
+ c_runtime/vfprintf/test8/test8.cpp
+ c_runtime/vfprintf/test9/test9.cpp
+ #c_runtime/vprintf/test1/test1.cpp
+ c_runtime/vprintf/test10/test10.cpp
+ c_runtime/vprintf/test11/test11.cpp
+ c_runtime/vprintf/test12/test12.cpp
+ c_runtime/vprintf/test13/test13.cpp
+ c_runtime/vprintf/test14/test14.cpp
+ c_runtime/vprintf/test15/test15.cpp
+ c_runtime/vprintf/test16/test16.cpp
+ c_runtime/vprintf/test17/test17.cpp
+ c_runtime/vprintf/test18/test18.cpp
+ c_runtime/vprintf/test19/test19.cpp
+ c_runtime/vprintf/test2/test2.cpp
+ c_runtime/vprintf/test3/test3.cpp
+ c_runtime/vprintf/test4/test4.cpp
+ c_runtime/vprintf/test5/test5.cpp
+ c_runtime/vprintf/test6/test6.cpp
+ c_runtime/vprintf/test7/test7.cpp
+ c_runtime/vprintf/test8/test8.cpp
+ c_runtime/vprintf/test9/test9.cpp
+ c_runtime/vsprintf/test1/test1.cpp
+ c_runtime/vsprintf/test10/test10.cpp
+ c_runtime/vsprintf/test11/test11.cpp
+ c_runtime/vsprintf/test12/test12.cpp
+ c_runtime/vsprintf/test13/test13.cpp
+ c_runtime/vsprintf/test14/test14.cpp
+ c_runtime/vsprintf/test15/test15.cpp
+ c_runtime/vsprintf/test16/test16.cpp
+ c_runtime/vsprintf/test17/test17.cpp
+ c_runtime/vsprintf/test18/test18.cpp
+ c_runtime/vsprintf/test19/test19.cpp
+ c_runtime/vsprintf/test2/test2.cpp
+ c_runtime/vsprintf/test3/test3.cpp
+ c_runtime/vsprintf/test4/test4.cpp
+ c_runtime/vsprintf/test6/test6.cpp
+ c_runtime/vsprintf/test7/test7.cpp
+ c_runtime/vsprintf/test8/test8.cpp
+ c_runtime/vsprintf/test9/test9.cpp
+ c_runtime/vswprintf/test1/test1.cpp
+ c_runtime/vswprintf/test10/test10.cpp
+ c_runtime/vswprintf/test11/test11.cpp
+ c_runtime/vswprintf/test12/test12.cpp
+ c_runtime/vswprintf/test13/test13.cpp
+ c_runtime/vswprintf/test14/test14.cpp
+ c_runtime/vswprintf/test15/test15.cpp
+ c_runtime/vswprintf/test16/test16.cpp
+ c_runtime/vswprintf/test17/test17.cpp
+ c_runtime/vswprintf/test18/test18.cpp
+ c_runtime/vswprintf/test19/test19.cpp
+ c_runtime/vswprintf/test2/test2.cpp
+ c_runtime/vswprintf/test3/test3.cpp
+ c_runtime/vswprintf/test4/test4.cpp
+ c_runtime/vswprintf/test6/test6.cpp
+ c_runtime/vswprintf/test7/test7.cpp
+ c_runtime/vswprintf/test8/test8.cpp
+ c_runtime/vswprintf/test9/test9.cpp
+ c_runtime/wcscat/test1/test1.cpp
+ c_runtime/wcschr/test1/test1.cpp
+ c_runtime/wcscmp/test1/test1.cpp
+ c_runtime/wcscpy/test1/test1.cpp
+ c_runtime/wcslen/test1/test1.cpp
+ c_runtime/wcsncmp/test1/test1.cpp
+ c_runtime/wcsncpy/test1/test1.cpp
+ c_runtime/wcspbrk/test1/test1.cpp
+ c_runtime/wcsrchr/test1/test1.cpp
+ c_runtime/wcsstr/test1/test1.cpp
+ c_runtime/wcstod/test1/test1.cpp
+ c_runtime/wcstod/test2/test2.cpp
+ c_runtime/wcstok/test1/test1.cpp
+ c_runtime/wcstoul/test1/test1.cpp
+ c_runtime/wcstoul/test2/test2.cpp
+ c_runtime/wcstoul/test3/test3.cpp
+ c_runtime/wcstoul/test4/test4.cpp
+ c_runtime/wcstoul/test5/test5.cpp
+ c_runtime/wcstoul/test6/test6.cpp
+ c_runtime/wprintf/test1/test1.cpp
+ c_runtime/wprintf/test2/test2.cpp
+ c_runtime/_alloca/test1/test1.cpp
+ c_runtime/_fdopen/test1/test1.cpp
+ c_runtime/_finite/test1/test1.cpp
+ c_runtime/_finitef/test1/test1.cpp
+ #c_runtime/_gcvt/test1/_gcvt.cpp
+ #c_runtime/_gcvt/test2/test2.cpp
+ c_runtime/_isnan/test1/test1.cpp
+ c_runtime/_isnanf/test1/test1.cpp
+ c_runtime/_itow/test1/test1.cpp
+ c_runtime/_putenv/test1/test1.cpp
+ c_runtime/_putenv/test2/test2.cpp
+ c_runtime/_putenv/test3/test3.cpp
+ c_runtime/_putenv/test4/test4.cpp
+ c_runtime/_rotl/test1/test1.cpp
+ c_runtime/_rotr/test1/test1.cpp
+ c_runtime/_snprintf_s/test1/test1.cpp
+ c_runtime/_snprintf_s/test10/test10.cpp
+ c_runtime/_snprintf_s/test11/test11.cpp
+ c_runtime/_snprintf_s/test12/test12.cpp
+ c_runtime/_snprintf_s/test13/test13.cpp
+ c_runtime/_snprintf_s/test14/test14.cpp
+ c_runtime/_snprintf_s/test15/test15.cpp
+ c_runtime/_snprintf_s/test16/test16.cpp
+ c_runtime/_snprintf_s/test17/test17.cpp
+ c_runtime/_snprintf_s/test18/test18.cpp
+ c_runtime/_snprintf_s/test19/test19.cpp
+ c_runtime/_snprintf_s/test2/test2.cpp
+ c_runtime/_snprintf_s/test3/test3.cpp
+ c_runtime/_snprintf_s/test4/test4.cpp
+ c_runtime/_snprintf_s/test6/test6.cpp
+ c_runtime/_snprintf_s/test7/test7.cpp
+ c_runtime/_snprintf_s/test8/test8.cpp
+ c_runtime/_snprintf_s/test9/test9.cpp
+ c_runtime/_snwprintf_s/test1/test1.cpp
+ c_runtime/_snwprintf_s/test10/test10.cpp
+ c_runtime/_snwprintf_s/test11/test11.cpp
+ c_runtime/_snwprintf_s/test12/test12.cpp
+ c_runtime/_snwprintf_s/test13/test13.cpp
+ c_runtime/_snwprintf_s/test14/test14.cpp
+ c_runtime/_snwprintf_s/test15/test15.cpp
+ c_runtime/_snwprintf_s/test16/test16.cpp
+ c_runtime/_snwprintf_s/test17/test17.cpp
+ c_runtime/_snwprintf_s/test18/test18.cpp
+ c_runtime/_snwprintf_s/test19/test19.cpp
+ c_runtime/_snwprintf_s/test2/test2.cpp
+ c_runtime/_snwprintf_s/test3/test3.cpp
+ c_runtime/_snwprintf_s/test4/test4.cpp
+ c_runtime/_snwprintf_s/test6/test6.cpp
+ c_runtime/_snwprintf_s/test7/test7.cpp
+ c_runtime/_snwprintf_s/test8/test8.cpp
+ c_runtime/_snwprintf_s/test9/test9.cpp
+ c_runtime/_stricmp/test1/test1.cpp
+ c_runtime/_strnicmp/test1/test1.cpp
+ c_runtime/_vsnprintf_s/test1/test1.cpp
+ c_runtime/_vsnprintf_s/test10/test10.cpp
+ c_runtime/_vsnprintf_s/test11/test11.cpp
+ c_runtime/_vsnprintf_s/test12/test12.cpp
+ c_runtime/_vsnprintf_s/test13/test13.cpp
+ c_runtime/_vsnprintf_s/test14/test14.cpp
+ c_runtime/_vsnprintf_s/test15/test15.cpp
+ c_runtime/_vsnprintf_s/test16/test16.cpp
+ c_runtime/_vsnprintf_s/test17/test17.cpp
+ c_runtime/_vsnprintf_s/test18/test18.cpp
+ c_runtime/_vsnprintf_s/test19/test19.cpp
+ c_runtime/_vsnprintf_s/test2/test2.cpp
+ c_runtime/_vsnprintf_s/test3/test3.cpp
+ c_runtime/_vsnprintf_s/test4/test4.cpp
+ c_runtime/_vsnprintf_s/test6/test6.cpp
+ c_runtime/_vsnprintf_s/test7/test7.cpp
+ c_runtime/_vsnprintf_s/test8/test8.cpp
+ c_runtime/_vsnprintf_s/test9/test9.cpp
+ c_runtime/_vsnwprintf_s/test1/test1.cpp
+ c_runtime/_vsnwprintf_s/test10/test10.cpp
+ c_runtime/_vsnwprintf_s/test11/test11.cpp
+ c_runtime/_vsnwprintf_s/test12/test12.cpp
+ c_runtime/_vsnwprintf_s/test13/test13.cpp
+ c_runtime/_vsnwprintf_s/test14/test14.cpp
+ c_runtime/_vsnwprintf_s/test15/test15.cpp
+ c_runtime/_vsnwprintf_s/test16/test16.cpp
+ c_runtime/_vsnwprintf_s/test17/test17.cpp
+ c_runtime/_vsnwprintf_s/test18/test18.cpp
+ c_runtime/_vsnwprintf_s/test19/test19.cpp
+ c_runtime/_vsnwprintf_s/test2/test2.cpp
+ c_runtime/_vsnwprintf_s/test3/test3.cpp
+ c_runtime/_vsnwprintf_s/test4/test4.cpp
+ c_runtime/_vsnwprintf_s/test6/test6.cpp
+ c_runtime/_vsnwprintf_s/test7/test7.cpp
+ c_runtime/_vsnwprintf_s/test8/test8.cpp
+ c_runtime/_vsnwprintf_s/test9/test9.cpp
+ c_runtime/_wcsicmp/test1/test1.cpp
+ c_runtime/_wcslwr/test1/test1.cpp
+ c_runtime/_wcsnicmp/test1/test1.cpp
+ c_runtime/_wfopen/test1/test1.cpp
+ c_runtime/_wfopen/test2/test2.cpp
+ c_runtime/_wfopen/test3/test3.cpp
+ c_runtime/_wfopen/test4/test4.cpp
+ c_runtime/_wfopen/test5/test5.cpp
+ c_runtime/_wfopen/test6/test6.cpp
+ c_runtime/_wfopen/test7/test7.cpp
+ c_runtime/_wtoi/test1/test1.cpp
+ c_runtime/__iscsym/test1/__iscsym.cpp
+ #debug_api/DebugBreak/test1/test1.cpp
+ debug_api/OutputDebugStringA/test1/helper.cpp
+ debug_api/OutputDebugStringA/test1/test1.cpp
+ debug_api/OutputDebugStringW/test1/test1.cpp
+ #debug_api/WriteProcessMemory/test1/helper.cpp
+ #debug_api/WriteProcessMemory/test1/test1.cpp
+ #debug_api/WriteProcessMemory/test3/helper.cpp
+ #debug_api/WriteProcessMemory/test3/test3.cpp
+ #debug_api/WriteProcessMemory/test4/helper.cpp
+ #debug_api/WriteProcessMemory/test4/test4.cpp
+ #exception_handling/pal_except/test1/test1.cpp
+ #exception_handling/pal_except/test2/test2.cpp
+ #exception_handling/pal_except/test3/test3.cpp
+ #exception_handling/pal_except/test4/test4.cpp
+ #exception_handling/pal_except/test5/test5.cpp
+ #exception_handling/pal_except/test6/test6.cpp
+ #exception_handling/pal_except/test7/test7.cpp
+ #exception_handling/PAL_EXCEPT_FILTER/test1/PAL_EXCEPT_FILTER.cpp
+ #exception_handling/PAL_EXCEPT_FILTER/test2/pal_except_filter.cpp
+ #exception_handling/PAL_EXCEPT_FILTER/test3/pal_except_filter.cpp
+ #exception_handling/PAL_EXCEPT_FILTER_EX/test1/PAL_EXCEPT_FILTER_EX.cpp
+ #exception_handling/PAL_EXCEPT_FILTER_EX/test2/pal_except_filter_ex.cpp
+ #exception_handling/PAL_EXCEPT_FILTER_EX/test3/pal_except_filter.cpp
+ #exception_handling/pal_finally/test1/pal_finally.cpp
+ #exception_handling/PAL_TRY_EXCEPT/test1/PAL_TRY_EXCEPT.cpp
+ #exception_handling/PAL_TRY_EXCEPT/test2/PAL_TRY_EXCEPT.cpp
+ #exception_handling/PAL_TRY_EXCEPT_EX/test1/PAL_TRY_EXCEPT_EX.cpp
+ #exception_handling/PAL_TRY_EXCEPT_EX/test2/PAL_TRY_EXCEPT_EX.cpp
+ #exception_handling/PAL_TRY_EXCEPT_EX/test3/PAL_TRY_EXCEPT_EX.cpp
+ #exception_handling/PAL_TRY_LEAVE_FINALLY/test1/PAL_TRY_LEAVE_FINALLY.cpp
+ exception_handling/RaiseException/test1/test1.cpp
+ exception_handling/RaiseException/test2/test2.cpp
+ exception_handling/RaiseException/test3/test.cpp
+ filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/CreateFileMapping_neg.cpp
+ filemapping_memmgt/CreateFileMappingW/test1/CreateFileMappingW.cpp
+ #filemapping_memmgt/CreateFileMappingW/test2/CreateFileMappingW.cpp
+ filemapping_memmgt/CreateFileMappingW/test3/CreateFileMappingW.cpp
+ filemapping_memmgt/CreateFileMappingW/test4/CreateFileMappingW.cpp
+ filemapping_memmgt/CreateFileMappingW/test5/CreateFileMappingW.cpp
+ filemapping_memmgt/CreateFileMappingW/test6/CreateFileMappingW.cpp
+ filemapping_memmgt/CreateFileMappingW/test7/createfilemapping.cpp
+ filemapping_memmgt/CreateFileMappingW/test8/createfilemapping.cpp
+ filemapping_memmgt/CreateFileMappingW/test9/createfilemapping.cpp
+# filemapping_memmgt/FreeLibrary/test1/dlltest.cpp
+ filemapping_memmgt/FreeLibrary/test1/FreeLibrary.cpp
+ filemapping_memmgt/FreeLibrary/test2/test2.cpp
+# filemapping_memmgt/FreeLibraryAndExitThread/test1/dlltest.cpp
+ filemapping_memmgt/FreeLibraryAndExitThread/test1/test1.cpp
+ filemapping_memmgt/GetModuleFileNameA/test1/GetModuleFileNameA.cpp
+ filemapping_memmgt/GetModuleFileNameA/test2/GetModuleFileNameA.cpp
+ filemapping_memmgt/GetModuleFileNameW/test1/GetModuleFileNameW.cpp
+ filemapping_memmgt/GetModuleFileNameW/test2/GetModuleFileNameW.cpp
+ filemapping_memmgt/GetProcAddress/test1/test1.cpp
+# filemapping_memmgt/GetProcAddress/test1/testlib.cpp
+ filemapping_memmgt/GetProcAddress/test2/test2.cpp
+# filemapping_memmgt/GetProcAddress/test2/testlib.cpp
+ filemapping_memmgt/LocalAlloc/test1/LocalAlloc.cpp
+ filemapping_memmgt/LocalFree/test1/LocalFree.cpp
+ filemapping_memmgt/LocalFree/test2/LocalFree.cpp
+ filemapping_memmgt/MapViewOfFile/test1/MapViewOfFile.cpp
+ filemapping_memmgt/MapViewOfFile/test2/MapViewOfFile.cpp
+ filemapping_memmgt/MapViewOfFile/test3/MapViewOfFile.cpp
+ filemapping_memmgt/MapViewOfFile/test4/mapviewoffile.cpp
+ filemapping_memmgt/MapViewOfFile/test5/mapviewoffile.cpp
+ filemapping_memmgt/MapViewOfFile/test6/mapviewoffile.cpp
+ filemapping_memmgt/OpenFileMappingW/test1/OpenFileMappingW.cpp
+ filemapping_memmgt/OpenFileMappingW/test2/OpenFileMappingW.cpp
+ filemapping_memmgt/OpenFileMappingW/test3/OpenFileMappingW.cpp
+ filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/ProbeMemory_neg.cpp
+ filemapping_memmgt/ProbeMemory/test1/ProbeMemory.cpp
+ filemapping_memmgt/UnmapViewOfFile/test1/UnmapViewOfFile.cpp
+ filemapping_memmgt/UnmapViewOfFile/test2/unmapviewoffile.cpp
+ filemapping_memmgt/VirtualAlloc/test1/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test10/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test11/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test12/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test13/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test14/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test15/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test16/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test17/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test18/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test19/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test2/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test20/virtualalloc.cpp
+ filemapping_memmgt/VirtualAlloc/test21/virtualalloc.cpp
+ filemapping_memmgt/VirtualAlloc/test22/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test3/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test4/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test5/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test6/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test7/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test8/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualAlloc/test9/VirtualAlloc.cpp
+ filemapping_memmgt/VirtualFree/test1/VirtualFree.cpp
+ filemapping_memmgt/VirtualFree/test2/VirtualFree.cpp
+ filemapping_memmgt/VirtualFree/test3/VirtualFree.cpp
+ filemapping_memmgt/VirtualProtect/test1/VirtualProtect.cpp
+ filemapping_memmgt/VirtualProtect/test2/VirtualProtect.cpp
+ filemapping_memmgt/VirtualProtect/test3/VirtualProtect.cpp
+ filemapping_memmgt/VirtualProtect/test4/VirtualProtect.cpp
+ filemapping_memmgt/VirtualProtect/test6/VirtualProtect.cpp
+ filemapping_memmgt/VirtualProtect/test7/VirtualProtect.cpp
+ filemapping_memmgt/VirtualQuery/test1/VirtualQuery.cpp
+ file_io/CopyFileA/test1/CopyFileA.cpp
+ file_io/CopyFileA/test2/test2.cpp
+ file_io/CopyFileA/test3/test3.cpp
+ file_io/CopyFileA/test4/test4.cpp
+ file_io/CopyFileW/test1/CopyFileW.cpp
+ file_io/CopyFileW/test2/test2.cpp
+ file_io/CopyFileW/test3/test3.cpp
+ file_io/CreateFileA/test1/CreateFileA.cpp
+ file_io/CreateFileW/test1/CreateFileW.cpp
+ file_io/DeleteFileA/test1/DeleteFileA.cpp
+ file_io/DeleteFileW/test1/DeleteFileW.cpp
+ file_io/errorpathnotfound/test1/test1.cpp
+ file_io/errorpathnotfound/test2/test2.cpp
+ file_io/FILECanonicalizePath/FILECanonicalizePath.cpp
+ file_io/FindClose/test1/FindClose.cpp
+ file_io/FindFirstFileA/test1/FindFirstFileA.cpp
+ file_io/FindFirstFileW/test1/FindFirstFileW.cpp
+ file_io/FindNextFileA/test1/FindNextFileA.cpp
+ file_io/FindNextFileA/test2/findnextfilea.cpp
+ file_io/FindNextFileW/test1/FindNextFileW.cpp
+ file_io/FindNextFileW/test2/findnextfilew.cpp
+ file_io/FlushFileBuffers/test1/FlushFileBuffers.cpp
+ file_io/GetConsoleOutputCP/test1/GetConsoleOutputCP.cpp
+ file_io/GetCurrentDirectoryA/test1/GetCurrentDirectoryA.cpp
+ file_io/GetCurrentDirectoryW/test1/GetCurrentDirectoryW.cpp
+ file_io/GetFileAttributesA/test1/GetFileAttributesA.cpp
+ file_io/GetFileAttributesExW/test1/test1.cpp
+ file_io/GetFileAttributesExW/test2/test2.cpp
+ file_io/GetFileAttributesW/test1/GetFileAttributesW.cpp
+ file_io/GetFileSize/test1/GetFileSize.cpp
+ file_io/GetFileSizeEx/test1/GetFileSizeEx.cpp
+ file_io/GetFullPathNameA/test1/GetFullPathNameA.cpp
+ file_io/GetFullPathNameA/test2/test2.cpp
+ file_io/GetFullPathNameA/test3/test3.cpp
+ file_io/GetFullPathNameA/test4/test4.cpp
+ file_io/GetFullPathNameW/test1/GetFullPathNameW.cpp
+ file_io/GetFullPathNameW/test2/test2.cpp
+ file_io/GetFullPathNameW/test3/test3.cpp
+ file_io/GetFullPathNameW/test4/test4.cpp
+ file_io/GetStdHandle/test1/GetStdHandle.cpp
+ file_io/GetStdHandle/test2/GetStdHandle.cpp
+ file_io/GetSystemTime/test1/test.cpp
+ file_io/GetSystemTimeAsFileTime/test1/GetSystemTimeAsFileTime.cpp
+ file_io/GetTempFileNameA/test1/GetTempFileNameA.cpp
+ file_io/GetTempFileNameA/test2/GetTempFileNameA.cpp
+ file_io/GetTempFileNameA/test3/gettempfilenamea.cpp
+ file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp
+ file_io/GetTempFileNameW/test2/GetTempFileNameW.cpp
+ file_io/GetTempFileNameW/test3/gettempfilenamew.cpp
+ file_io/gettemppatha/test1/gettemppatha.cpp
+ file_io/GetTempPathW/test1/GetTempPathW.cpp
+ file_io/MoveFileExA/test1/MoveFileExA.cpp
+ file_io/MoveFileExW/test1/MoveFileExW.cpp
+ file_io/ReadFile/test1/ReadFile.cpp
+ file_io/ReadFile/test2/ReadFile.cpp
+ file_io/ReadFile/test3/ReadFile.cpp
+ file_io/ReadFile/test4/readfile.cpp
+ file_io/SearchPathW/test1/SearchPathW.cpp
+ file_io/SetEndOfFile/test1/SetEndOfFile.cpp
+ file_io/SetEndOfFile/test2/SetEndOfFile.cpp
+ file_io/SetEndOfFile/test3/SetEndOfFile.cpp
+ file_io/SetEndOfFile/test4/setendoffile.cpp
+ file_io/SetEndOfFile/test5/test5.cpp
+ file_io/SetFilePointer/test1/SetFilePointer.cpp
+ file_io/SetFilePointer/test2/SetFilePointer.cpp
+ file_io/SetFilePointer/test3/SetFilePointer.cpp
+ file_io/SetFilePointer/test4/SetFilePointer.cpp
+ file_io/SetFilePointer/test5/SetFilePointer.cpp
+ file_io/SetFilePointer/test6/SetFilePointer.cpp
+ file_io/SetFilePointer/test7/SetFilePointer.cpp
+ file_io/WriteFile/test1/WriteFile.cpp
+ file_io/WriteFile/test2/WriteFile.cpp
+ file_io/WriteFile/test3/WriteFile.cpp
+ file_io/WriteFile/test4/writefile.cpp
+ file_io/WriteFile/test5/writefile.cpp
+ loader/LoadLibraryA/test1/LoadLibraryA.cpp
+ loader/LoadLibraryA/test2/LoadLibraryA.cpp
+ loader/LoadLibraryA/test3/loadlibrarya.cpp
+ loader/LoadLibraryA/test5/loadlibrarya.cpp
+ #loader/LoadLibraryA/test6/dlltest.cpp
+ #loader/LoadLibraryA/test6/loadlibrarya.cpp
+ loader/LoadLibraryA/test7/LoadLibraryA.cpp
+ #loader/LoadLibraryA/test8/dlltest.cpp
+ #loader/LoadLibraryA/test8/loadlibrarya.cpp
+ loader/LoadLibraryW/test1/LoadLibraryW.cpp
+ loader/LoadLibraryW/test2/loadlibraryw.cpp
+ loader/LoadLibraryW/test3/loadlibraryw.cpp
+ loader/LoadLibraryW/test5/loadlibraryw.cpp
+ #locale_info/CompareStringA/test1/test1.cpp
+ #locale_info/CompareStringW/test1/test1.cpp
+ locale_info/GetACP/test1/test1.cpp
+ #locale_info/GetLocaleInfoW/test1/test1.cpp
+ #locale_info/GetLocaleInfoW/test2/test2.cpp
+ locale_info/MultiByteToWideChar/test1/test1.cpp
+ locale_info/MultiByteToWideChar/test2/test2.cpp
+ locale_info/MultiByteToWideChar/test3/test3.cpp
+ locale_info/MultiByteToWideChar/test4/test4.cpp
+ locale_info/WideCharToMultiByte/test1/test1.cpp
+ locale_info/WideCharToMultiByte/test2/test2.cpp
+ locale_info/WideCharToMultiByte/test3/test3.cpp
+ locale_info/WideCharToMultiByte/test4/test4.cpp
+ locale_info/WideCharToMultiByte/test5/test5.cpp
+ miscellaneous/CGroup/test1/test.cpp
+ miscellaneous/CloseHandle/test1/test.cpp
+ miscellaneous/CloseHandle/test2/test.cpp
+ miscellaneous/CreatePipe/test1/test1.cpp
+ miscellaneous/FlushInstructionCache/test1/test1.cpp
+ miscellaneous/FormatMessageW/test1/test.cpp
+ miscellaneous/FormatMessageW/test2/test.cpp
+ miscellaneous/FormatMessageW/test3/test.cpp
+ miscellaneous/FormatMessageW/test4/test.cpp
+ miscellaneous/FormatMessageW/test5/test.cpp
+ miscellaneous/FormatMessageW/test6/test.cpp
+ miscellaneous/FreeEnvironmentStringsW/test1/test.cpp
+ miscellaneous/FreeEnvironmentStringsW/test2/test.cpp
+ miscellaneous/GetCommandLineW/test1/test.cpp
+ miscellaneous/GetEnvironmentStringsW/test1/test.cpp
+ miscellaneous/GetEnvironmentVariableA/test1/test.cpp
+ miscellaneous/GetEnvironmentVariableA/test2/test.cpp
+ miscellaneous/GetEnvironmentVariableA/test3/test.cpp
+ miscellaneous/GetEnvironmentVariableA/test4/test.cpp
+ miscellaneous/GetEnvironmentVariableA/test5/test5.cpp
+ miscellaneous/GetEnvironmentVariableA/test6/test6.cpp
+ miscellaneous/GetEnvironmentVariableW/test1/test.cpp
+ miscellaneous/GetEnvironmentVariableW/test2/test.cpp
+ miscellaneous/GetEnvironmentVariableW/test3/test.cpp
+ miscellaneous/GetEnvironmentVariableW/test4/test.cpp
+ miscellaneous/GetEnvironmentVariableW/test5/test5.cpp
+ miscellaneous/GetEnvironmentVariableW/test6/test6.cpp
+ miscellaneous/GetLastError/test1/test.cpp
+ miscellaneous/GetSystemInfo/test1/test.cpp
+ miscellaneous/GetTickCount/test1/test.cpp
+ miscellaneous/GlobalMemoryStatusEx/test1/test.cpp
+ miscellaneous/InterlockedBit/test1/test.cpp
+ miscellaneous/InterlockedBit/test2/test.cpp
+ miscellaneous/InterlockedCompareExchange/test1/test.cpp
+ miscellaneous/InterlockedCompareExchange/test2/test.cpp
+ miscellaneous/InterlockedCompareExchange64/test1/test.cpp
+ miscellaneous/InterlockedCompareExchange64/test2/test.cpp
+ miscellaneous/InterlockedCompareExchangePointer/test1/test.cpp
+ miscellaneous/InterlockedDecrement/test1/test.cpp
+ miscellaneous/InterlockedDecrement/test2/test.cpp
+ miscellaneous/InterlockedDecrement64/test1/test.cpp
+ miscellaneous/InterlockedDecrement64/test2/test.cpp
+ miscellaneous/InterlockedExchange/test1/test.cpp
+ miscellaneous/InterlockedExchange64/test1/test.cpp
+ miscellaneous/InterLockedExchangeAdd/test1/test.cpp
+ miscellaneous/InterlockedExchangePointer/test1/InterlockedExchangePointer.cpp
+ miscellaneous/InterlockedIncrement/test1/test.cpp
+ miscellaneous/InterlockedIncrement/test2/test.cpp
+ miscellaneous/InterlockedIncrement64/test1/test.cpp
+ miscellaneous/InterlockedIncrement64/test2/test.cpp
+ #miscellaneous/IsBadCodePtr/test1/test1.cpp
+ #miscellaneous/IsBadReadPtr/test1/test.cpp
+ #miscellaneous/IsBadWritePtr/test1/test.cpp
+ #miscellaneous/IsBadWritePtr/test2/test2.cpp
+ #miscellaneous/IsBadWritePtr/test3/test3.cpp
+ #miscellaneous/MessageBoxW/test1/test.cpp
+ #miscellaneous/MessageBoxW/test2/test.cpp
+ miscellaneous/queryperformancecounter/test1/test1.cpp
+ miscellaneous/queryperformancefrequency/test1/test1.cpp
+ miscellaneous/SetEnvironmentVariableA/test1/test1.cpp
+ miscellaneous/SetEnvironmentVariableA/test2/test2.cpp
+ miscellaneous/SetEnvironmentVariableA/test3/test3.cpp
+ miscellaneous/SetEnvironmentVariableA/test4/test4.cpp
+ miscellaneous/SetEnvironmentVariableW/test1/test.cpp
+ miscellaneous/SetEnvironmentVariableW/test2/test.cpp
+ miscellaneous/SetEnvironmentVariableW/test3/test3.cpp
+ miscellaneous/SetEnvironmentVariableW/test4/test4.cpp
+ miscellaneous/SetLastError/test1/test.cpp
+ miscellaneous/_i64tow/test1/test1.cpp
+ pal_specific/PAL_errno/test1/PAL_errno.cpp
+ pal_specific/PAL_GetPALDirectoryW/test1/PAL_GetPALDirectoryW.cpp
+# pal_specific/PAL_GetUserTempDirectoryW/test1/PAL_GetUserTempDirectoryW.cpp
+ #pal_specific/PAL_get_stderr/test1/PAL_get_stderr.cpp
+ #pal_specific/PAL_get_stdin/test1/PAL_get_stdin.cpp
+ #pal_specific/PAL_get_stdout/test1/PAL_get_stdout.cpp
+ pal_specific/PAL_Initialize_Terminate/test1/PAL_Initialize_Terminate.cpp
+ pal_specific/PAL_Initialize_Terminate/test2/pal_initialize_twice.cpp
+# pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/PAL_RegisterLibraryW_UnregisterLibraryW.cpp
+# pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/reg_unreg_libraryw_neg.cpp
+ samples/test1/test.cpp
+ samples/test2/test.cpp
+ threading/CreateEventW/test1/test1.cpp
+ threading/CreateEventW/test2/test2.cpp
+ threading/CreateEventW/test3/test3.cpp
+ threading/CreateMutexW_ReleaseMutex/test1/CreateMutexW.cpp
+ threading/CreateMutexW_ReleaseMutex/test2/CreateMutexW.cpp
+ threading/CreateProcessW/test1/childProcess.cpp
+ threading/CreateProcessW/test1/parentProcess.cpp
+ threading/CreateProcessW/test2/childprocess.cpp
+ threading/CreateProcessW/test2/parentprocess.cpp
+ threading/CreateSemaphoreW_ReleaseSemaphore/test1/CreateSemaphore.cpp
+ threading/CreateSemaphoreW_ReleaseSemaphore/test2/CreateSemaphore.cpp
+ threading/CreateSemaphoreW_ReleaseSemaphore/test3/createsemaphore.cpp
+ threading/CreateThread/test1/test1.cpp
+ threading/CreateThread/test2/test2.cpp
+ threading/CreateThread/test3/test3.cpp
+ threading/CriticalSectionFunctions/test1/InitializeCriticalSection.cpp
+ threading/CriticalSectionFunctions/test2/test2.cpp
+ threading/CriticalSectionFunctions/test3/test3.cpp
+ threading/CriticalSectionFunctions/test4/test4.cpp
+ threading/CriticalSectionFunctions/test5/test5.cpp
+ threading/CriticalSectionFunctions/test6/test6.cpp
+ threading/CriticalSectionFunctions/test7/test7.cpp
+ threading/CriticalSectionFunctions/test8/test8.cpp
+ threading/DuplicateHandle/test1/test1.cpp
+ threading/DuplicateHandle/test10/test10.cpp
+ threading/DuplicateHandle/test11/childprocess.cpp
+ threading/DuplicateHandle/test11/test11.cpp
+ threading/DuplicateHandle/test12/test12.cpp
+ threading/DuplicateHandle/test2/test2.cpp
+ threading/DuplicateHandle/test3/test3.cpp
+ threading/DuplicateHandle/test4/test4.cpp
+ threading/DuplicateHandle/test5/test5.cpp
+ threading/DuplicateHandle/test6/test6.cpp
+ threading/DuplicateHandle/test7/test7.cpp
+ threading/DuplicateHandle/test8/test8.cpp
+# threading/DuplicateHandle/test9/test9.cpp
+ threading/ExitProcess/test1/ExitProcess.cpp
+ threading/ExitProcess/test2/test2.cpp
+ threading/ExitProcess/test3/test3.cpp
+ threading/ExitThread/test1/test1.cpp
+ threading/ExitThread/test2/childprocess.cpp
+ threading/ExitThread/test2/test2.cpp
+ threading/GetCurrentProcess/test1/process.cpp
+ threading/GetCurrentProcessId/test1/processId.cpp
+ threading/GetCurrentThread/test1/thread.cpp
+ threading/GetCurrentThread/test2/test2.cpp
+ threading/GetCurrentThreadId/test1/threadId.cpp
+ threading/GetExitCodeProcess/test1/childProcess.cpp
+ threading/GetExitCodeProcess/test1/test1.cpp
+ threading/GetProcessTimes/test2/test2.cpp
+ threading/GetThreadTimes/test1/test1.cpp
+ threading/NamedMutex/test1/namedmutex.cpp
+ threading/NamedMutex/test1/nopal.cpp
+ threading/OpenEventW/test1/test1.cpp
+ threading/OpenEventW/test2/test2.cpp
+ threading/OpenEventW/test3/childprocess.cpp
+ threading/OpenEventW/test3/test3.cpp
+ threading/OpenEventW/test4/test4.cpp
+ threading/OpenEventW/test5/test5.cpp
+ threading/OpenProcess/test1/childProcess.cpp
+ threading/OpenProcess/test1/test1.cpp
+ threading/QueryThreadCycleTime/test1/test1.cpp
+ threading/QueueUserAPC/test1/test1.cpp
+ threading/QueueUserAPC/test2/test2.cpp
+ threading/QueueUserAPC/test3/test3.cpp
+ threading/QueueUserAPC/test4/test4.cpp
+ threading/QueueUserAPC/test5/test5.cpp
+ threading/QueueUserAPC/test6/test6.cpp
+ threading/QueueUserAPC/test7/test7.cpp
+ threading/ReleaseMutex/test3/ReleaseMutex.cpp
+ threading/releasesemaphore/test1/test.cpp
+ threading/ResetEvent/test1/test1.cpp
+ threading/ResetEvent/test2/test2.cpp
+ threading/ResetEvent/test3/test3.cpp
+ threading/ResetEvent/test4/test4.cpp
+ threading/ResumeThread/test1/test1.cpp
+ threading/SetErrorMode/test1/test1.cpp
+ threading/SetEvent/test1/test1.cpp
+ threading/SetEvent/test2/test2.cpp
+ threading/SetEvent/test3/test3.cpp
+ threading/SetEvent/test4/test4.cpp
+ threading/SignalObjectAndWait/SignalObjectAndWaitTest.cpp
+ threading/Sleep/test1/Sleep.cpp
+ threading/Sleep/test2/sleep.cpp
+ threading/SleepEx/test1/test1.cpp
+ threading/SleepEx/test2/test2.cpp
+ threading/SwitchToThread/test1/test1.cpp
+ threading/TerminateProcess/test1/TerminateProcess.cpp
+ threading/ThreadPriority/test1/ThreadPriority.cpp
+ threading/WaitForMultipleObjects/test1/test1.cpp
+ threading/WaitForMultipleObjectsEx/test1/test1.cpp
+ threading/WaitForMultipleObjectsEx/test2/test2.cpp
+ threading/WaitForMultipleObjectsEx/test3/test3.cpp
+ threading/WaitForMultipleObjectsEx/test4/test4.cpp
+ threading/WaitForMultipleObjectsEx/test5/helper.cpp
+ threading/WaitForMultipleObjectsEx/test5/test5.cpp
+ threading/WaitForMultipleObjectsEx/test6/child6.cpp
+ threading/WaitForMultipleObjectsEx/test6/test6.cpp
+ threading/WaitForSingleObject/test1/test1.cpp
+ threading/WaitForSingleObject/WFSOExMutexTest/WFSOExMutexTest.cpp
+ threading/WaitForSingleObject/WFSOExSemaphoreTest/WFSOExSemaphoreTest.cpp
+ threading/WaitForSingleObject/WFSOExThreadTest/WFSOExThreadTest.cpp
+ threading/WaitForSingleObject/WFSOMutexTest/WFSOMutexTest.cpp
+ threading/WaitForSingleObject/WFSOProcessTest/ChildProcess.cpp
+ threading/WaitForSingleObject/WFSOProcessTest/WFSOProcessTest.cpp
+ threading/WaitForSingleObject/WFSOSemaphoreTest/WFSOSemaphoreTest.cpp
+ threading/WaitForSingleObject/WFSOThreadTest/WFSOThreadTest.cpp
+ threading/YieldProcessor/test1/test1.cpp
+
+)
+
+add_dependencies(paltests coreclrpal)
+
+target_link_libraries(paltests
+ ${COMMON_TEST_LIBRARIES}
+)
+
+_install (TARGETS paltests DESTINATION paltests)
+_install (PROGRAMS runpaltests.sh runpaltestshelix.sh DESTINATION paltests)
+++ /dev/null
-add_subdirectory(abs)
-add_subdirectory(acos)
-add_subdirectory(acosf)
-add_subdirectory(acosh)
-add_subdirectory(acoshf)
-add_subdirectory(asin)
-add_subdirectory(asinf)
-add_subdirectory(asinh)
-add_subdirectory(asinhf)
-add_subdirectory(atan)
-add_subdirectory(atan2)
-add_subdirectory(atan2f)
-add_subdirectory(atanf)
-add_subdirectory(atanh)
-add_subdirectory(atanhf)
-add_subdirectory(atof)
-add_subdirectory(atoi)
-add_subdirectory(bsearch)
-add_subdirectory(cbrt)
-add_subdirectory(cbrtf)
-add_subdirectory(ceil)
-add_subdirectory(ceilf)
-add_subdirectory(cos)
-add_subdirectory(cosf)
-add_subdirectory(cosh)
-add_subdirectory(coshf)
-
-add_subdirectory(errno)
-add_subdirectory(exit)
-add_subdirectory(exp)
-add_subdirectory(expf)
-add_subdirectory(fabs)
-add_subdirectory(fabsf)
-add_subdirectory(fclose)
-add_subdirectory(ferror)
-add_subdirectory(fflush)
-add_subdirectory(fgets)
-add_subdirectory(floor)
-add_subdirectory(floorf)
-add_subdirectory(fma)
-add_subdirectory(fmaf)
-add_subdirectory(fmod)
-add_subdirectory(fmodf)
-add_subdirectory(fopen)
-add_subdirectory(fprintf)
-add_subdirectory(fputs)
-add_subdirectory(fread)
-add_subdirectory(free)
-add_subdirectory(fseek)
-add_subdirectory(ftell)
-add_subdirectory(fwprintf)
-add_subdirectory(fwrite)
-add_subdirectory(getenv)
-add_subdirectory(ilogb)
-add_subdirectory(ilogbf)
-add_subdirectory(isalnum)
-add_subdirectory(isalpha)
-add_subdirectory(isdigit)
-add_subdirectory(islower)
-add_subdirectory(isprint)
-add_subdirectory(isspace)
-add_subdirectory(isupper)
-add_subdirectory(iswdigit)
-add_subdirectory(iswspace)
-add_subdirectory(iswupper)
-add_subdirectory(isxdigit)
-add_subdirectory(llabs)
-add_subdirectory(log)
-add_subdirectory(log2)
-add_subdirectory(log2f)
-add_subdirectory(log10)
-add_subdirectory(log10f)
-add_subdirectory(logf)
-add_subdirectory(malloc)
-add_subdirectory(memchr)
-add_subdirectory(memcmp)
-add_subdirectory(memcpy)
-add_subdirectory(memmove)
-add_subdirectory(memset)
-add_subdirectory(modf)
-add_subdirectory(modff)
-add_subdirectory(pow)
-add_subdirectory(powf)
-add_subdirectory(printf)
-add_subdirectory(qsort)
-add_subdirectory(rand_srand)
-add_subdirectory(realloc)
-add_subdirectory(scalbn)
-add_subdirectory(scalbnf)
-add_subdirectory(sin)
-add_subdirectory(sinf)
-add_subdirectory(sinh)
-add_subdirectory(sinhf)
-add_subdirectory(sprintf_s)
-add_subdirectory(sqrt)
-add_subdirectory(sqrtf)
-add_subdirectory(sscanf_s)
-add_subdirectory(strcat)
-add_subdirectory(strchr)
-add_subdirectory(strcmp)
-add_subdirectory(strcpy)
-add_subdirectory(strcspn)
-add_subdirectory(strlen)
-add_subdirectory(strncat)
-add_subdirectory(strncmp)
-add_subdirectory(strncpy)
-add_subdirectory(strpbrk)
-add_subdirectory(strrchr)
-add_subdirectory(strspn)
-add_subdirectory(strstr)
-add_subdirectory(strtod)
-add_subdirectory(strtok)
-add_subdirectory(strtoul)
-add_subdirectory(swprintf)
-add_subdirectory(swscanf)
-add_subdirectory(tan)
-add_subdirectory(tanf)
-add_subdirectory(tanh)
-add_subdirectory(tanhf)
-add_subdirectory(time)
-add_subdirectory(tolower)
-add_subdirectory(toupper)
-add_subdirectory(towlower)
-add_subdirectory(towupper)
-add_subdirectory(vfprintf)
-add_subdirectory(vprintf)
-add_subdirectory(vsprintf)
-add_subdirectory(vswprintf)
-add_subdirectory(wcscat)
-add_subdirectory(wcschr)
-add_subdirectory(wcscmp)
-add_subdirectory(wcscpy)
-add_subdirectory(wcslen)
-add_subdirectory(wcsncmp)
-add_subdirectory(wcsncpy)
-add_subdirectory(wcspbrk)
-add_subdirectory(wcsrchr)
-add_subdirectory(wcsstr)
-add_subdirectory(wcstod)
-add_subdirectory(wcstok)
-add_subdirectory(wcstoul)
-add_subdirectory(wprintf)
-add_subdirectory(_alloca)
-add_subdirectory(_fdopen)
-add_subdirectory(_finite)
-add_subdirectory(_finitef)
-
-# TODO: make this test compile
-# add_subdirectory(_gcvt)
-
-add_subdirectory(_isnan)
-add_subdirectory(_isnanf)
-add_subdirectory(_itow)
-add_subdirectory(_putenv)
-add_subdirectory(_rotl)
-add_subdirectory(_rotr)
-add_subdirectory(_snprintf_s)
-add_subdirectory(_snwprintf_s)
-add_subdirectory(_stricmp)
-add_subdirectory(_strnicmp)
-add_subdirectory(_vsnprintf_s)
-add_subdirectory(_vsnwprintf_s)
-add_subdirectory(_wcsicmp)
-add_subdirectory(_wcslwr)
-add_subdirectory(_wcsnicmp)
-add_subdirectory(_wfopen)
-add_subdirectory(_wtoi)
-add_subdirectory(__iscsym)
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- __iscsym.cpp
-)
-
-add_executable(paltest_iscsym_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_iscsym_test1 coreclrpal)
-
-target_link_libraries(paltest_iscsym_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime___iscsym_test1_paltest_iscsym_test1, "c_runtime/__iscsym/test1/paltest_iscsym_test1")
{
int err;
int index;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = __iscsym
-Name = Positive test for __iscsym to test letter, digit and underscore
-TYPE = DEFAULT
-EXE1 = __iscsym
-Description
-=Test the __iscsym to test letter, digit and underscore
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_alloca_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_alloca_test1 coreclrpal)
-
-target_link_libraries(paltest_alloca_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__alloca_test1_paltest_alloca_test1, "c_runtime/_alloca/test1/paltest_alloca_test1")
{
char *testA = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _alloca
-Name = Positive Test for _alloca
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Checks that _alloca allocates memory, and that the memory is
-= readable and writeable.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fdopen_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fdopen_test1 coreclrpal)
-
-target_link_libraries(paltest_fdopen_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* cTestString = "one fish, two fish, read fish, blue fish.";
+#define cTestString "one fish, two fish, read fish, blue fish."
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__fdopen_test1_paltest_fdopen_test1, "c_runtime/_fdopen/test1/paltest_fdopen_test1")
{
HANDLE hReadPipe = NULL;
HANDLE hWritePipe = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fdopen
-Name = test for fdopen and _close
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the fdopen function.
-= This will test fdopen in r (read) mode. This test
-= creates and opens a test pipe, to write and read
-= from. fdopen requires a file handle(int), therefore
-= _open_osfhandle is used to get that handle.
-= _open_osfhandle is only used with CreatePipe. The
-= test will write and read from the pipe comparing
-= the results.
-= As a secondary test, _close is tested since it needs
-= the handle returned by _open_osfhandle. The handle is
-= closed, then a read is attempted on the handle which
-= should fail.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_finite_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_finite_test1 coreclrpal)
-
-target_link_libraries(paltest_finite_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define TO_DOUBLE(x) (*((double*)((void*)&x)))
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__finite_test1_paltest_finite_test1, "c_runtime/_finite/test1/paltest_finite_test1")
{
/*non-finite numbers*/
UINT64 lsnan = UI64(0xffffffffffffffff);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _finite
-Name = Positive Test for _finite
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Checks that _finite correctly classifies all types of floating point
-= numbers (NaN, -Infinity, Infinity, finite nonzero, unnormalized, 0, and -0).
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_finitef_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_finitef_test1 coreclrpal)
-
-target_link_libraries(paltest_finitef_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define TO_FLOAT(x) (*((float*)((void*)&x)))
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__finitef_test1_paltest_finitef_test1, "c_runtime/_finitef/test1/paltest_finitef_test1")
{
/*non-finite numbers*/
UINT32 lsnan = 0xffffffffu;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _finitef
-Name = Positive Test for _finitef
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Checks that _finitef correctly classifies all types of floating point
-= numbers (NaN, -Infinity, Infinity, finite nonzero, unnormalized, 0, and -0).
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- _gcvt.cpp
-)
-
-add_executable(paltest_gcvt_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_gcvt_test1 coreclrpal)
-
-target_link_libraries(paltest_gcvt_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__gcvt_test1_paltest_gcvt_test1, "c_runtime/_gcvt/test1/paltest_gcvt_test1")
{
int err;
double dValue = -3.1415926535;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _gcvt
-Name = Positive test for _gcvt API to convert a floatable value to a string
-TYPE = DEFAULT
-EXE1 = _gcvt
-Description
-=Test the _gcvt to convert a floatable value to a string
-=with specified sigficant digits stored
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_gcvt_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_gcvt_test2 coreclrpal)
-
-target_link_libraries(paltest_gcvt_test2
- ${COMMON_TEST_LIBRARIES}
-)
varies from windows sprintf */
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__gcvt_test2_paltest_gcvt_test2, "c_runtime/_gcvt/test2/paltest_gcvt_test2")
{
char result[128];
int i=0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _gcvt
-Name = Call _gcvt on normal values, negatives, exponents and hex digits.
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Call the _gcvt function on a number of cases. Check that it
-= handles negatives, exponents and hex digits properly. Also check that
-= the 'digit' specification works. (And that it doesn't truncate negative
-= signs or decimals)
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isnan_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isnan_test1 coreclrpal)
-
-target_link_libraries(paltest_isnan_test1
- ${COMMON_TEST_LIBRARIES}
-)
/*
* NaN: any double with maximum exponent (0x7ff) and non-zero fraction
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__isnan_test1_paltest_isnan_test1, "c_runtime/_isnan/test1/paltest_isnan_test1")
{
/*
* Initialize the PAL and return FAIL if this fails
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _isnan
-Name = Test #1 for _isnan
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test _isnan with a number of trivial values, to ensure they indicated that
-= they are numbers. Then try with Positive/Negative Infinite, which should
-= also be numbers. Finally set the least and most significant bits of
-= the fraction to positive and negative, at which point it should return
-= the true value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_isnanf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isnanf_test1 coreclrpal)
-
-target_link_libraries(paltest_isnanf_test1
- ${COMMON_TEST_LIBRARIES}
-)
/*
* NaN: any float with maximum exponent (0x7f8) and non-zero fraction
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__isnanf_test1_paltest_isnanf_test1, "c_runtime/_isnanf/test1/paltest_isnanf_test1")
{
/*
* Initialize the PAL and return FAIL if this fails
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _isnanf
-Name = Test #1 for _isnanf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test _isnanf with a number of trivial values, to ensure they indicated that
-= they are numbers. Then try with Positive/Negative Infinite, which should
-= also be numbers. Finally set the least and most significant bits of
-= the fraction to positive and negative, at which point it should return
-= the true value.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_itow_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_itow_test1 coreclrpal)
-
-target_link_libraries(paltest_itow_test1
- ${COMMON_TEST_LIBRARIES}
-)
int radix;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__itow_test1_paltest_itow_test1, "c_runtime/_itow/test1/paltest_itow_test1")
{
char16_t result[20];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _itow_s
-Name = Positive Test for _itow_s
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the _itow_s function.
-= Test a number of ints with different radix on each, to ensure that the
-= string returned is correct.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_putenv_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_putenv_test1 coreclrpal)
-
-target_link_libraries(paltest_putenv_test1
- ${COMMON_TEST_LIBRARIES}
-)
BOOL bValidString; /* valid argument string identifier */
};
-struct TestElement TestCases[] =
+PALTEST(c_runtime__putenv_test1_paltest_putenv_test1, "c_runtime/_putenv/test1/paltest_putenv_test1")
{
- {"PalTestingEnvironmentVariable=A value", "PalTestingEnvironmentVariable",
- "A value", TRUE},
- {"AnotherVariable=", "AnotherVariable", "", TRUE},
- {"YetAnotherVariable", "", "", FALSE},
- {"=ADifferentVariable", "", "ADifferentVariable", FALSE},
- {"", "", "", FALSE}
-
-};
+ struct TestElement TestCases[] =
+ {
+ {"PalTestingEnvironmentVariable=A value", "PalTestingEnvironmentVariable",
+ "A value", TRUE},
+ {"AnotherVariable=", "AnotherVariable", "", TRUE},
+ {"YetAnotherVariable", "", "", FALSE},
+ {"=ADifferentVariable", "", "ADifferentVariable", FALSE},
+ {"", "", "", FALSE}
-int __cdecl main(int argc, char **argv)
-{
+ };
int i;
char *variableValue;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _putenv
-Name = Positive test for _putenv
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Create an environment variable with _putenv and then use getenv to
-= check it. Check that we get the expected errors with invalid input.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_putenv_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_putenv_test2 coreclrpal)
-
-target_link_libraries(paltest_putenv_test2
- ${COMMON_TEST_LIBRARIES}
-)
const char *variable = "AnUnusualVariable";
const char *value = "AnUnusualValue";
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__putenv_test2_paltest_putenv_test2, "c_runtime/_putenv/test2/paltest_putenv_test2")
{
char *variableValue;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _putenv
-Name = Positive test for _putenv
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Create an environment variable with _putenv and then use getenv to
-= check it. This test resets an environment variable.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_putenv_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_putenv_test3 coreclrpal)
-
-target_link_libraries(paltest_putenv_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__putenv_test3_paltest_putenv_test3, "c_runtime/_putenv/test3/paltest_putenv_test3")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _putenv
-Name = Positive test for _putenv
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Create environment variables that only differ by case
-= and check that the BSD operating system treats them
-= as two separate variables.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_putenv_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_putenv_test4 coreclrpal)
-
-target_link_libraries(paltest_putenv_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__putenv_test4_paltest_putenv_test4, "c_runtime/_putenv/test4/paltest_putenv_test4")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _putenv
-Name = Positive test for _putenv
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Create an environment variable and check
-= that trying to retrieve it using a name with different
-= case, returns the correct value.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_rotl_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_rotl_test1 coreclrpal)
-
-target_link_libraries(paltest_rotl_test1
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__rotl_test1_paltest_rotl_test1, "c_runtime/_rotl/test1/paltest_rotl_test1")
{
unsigned results = 0;
int i,j;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _rtol
-Name = Positive Test for _rotl
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the _rotl function.
-= The _rotl function rotates the unsigned value. _rotl
-= rotates the value left and "wraps" bits rotated off
-= one end of value to the other end.
-= This test compares the result to a previously determined
-= value.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_rotr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_rotr_test1 coreclrpal)
-
-target_link_libraries(paltest_rotr_test1
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__rotr_test1_paltest_rotr_test1, "c_runtime/_rotr/test1/paltest_rotr_test1")
{
unsigned results = 0;
int i,j;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _rtor
-Name = Positive Test for _rotr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the _rotr function.
-= The _rotr function rotates the unsigned value. _rotr
-= rotates the value right and "wraps" bits rotated off
-= one end of value to the other end.
-= This test compares the result to a previously determined
-= value.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __STRINGTEST_H__
#define __STRINGTEST_H__
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_snprintf_s(const char *formatstr, char* param, const char *checkstr)
{
char buf[256] = { 0 };
param, formatstr, checkstr, buf);
}
}
+#define DoStrTest DoStrTest_snprintf_s
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_snprintf_s(const char *formatstr, WCHAR* param, const char *checkstr)
{
char buf[256] = { 0 };
convertC(param), formatstr, checkstr, buf);
}
}
+#define DoWStrTest DoWStrTest_snprintf_s
-
-void DoPointerTest(const char *formatstr, void* param, char* paramstr, char
+inline void DoPointerTest_snprintf_s(const char *formatstr, void* param, char* paramstr, char
*checkstr1)
{
char buf[256] = { 0 };
paramstr, formatstr, checkstr1, buf);
}
}
+#define DoPointerTest DoPointerTest_snprintf_s
-void DoCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoCountTest_snprintf_s(const char *formatstr, int param, const char *checkstr)
{
char buf[512] = { 0 };
int n = -1;
Fail("ERROR: Expected \"%s\" got \"%s\".\n", checkstr, buf);
}
}
+#define DoCountTest DoCountTest_snprintf_s
-void DoShortCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoShortCountTest_snprintf_s(const char *formatstr, int param, const char *checkstr)
{
char buf[256] = { 0 };
short int n = -1;
Fail("ERROR: Expected \"%s\" got \"%s\".\n", checkstr, buf);
}
}
+#define DoShortCountTest DoShortCountTest_snprintf_s
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_snprintf_s(const char *formatstr, char param, const char *checkstr)
{
char buf[256] = { 0 };
param, param, formatstr, checkstr, buf);
}
}
+#define DoCharTest DoCharTest_snprintf_s
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_snprintf_s(const char *formatstr, WCHAR param, const char *checkstr)
{
char buf[256] = { 0 };
(char)param, param, formatstr, checkstr, buf);
}
}
+#define DoWCharTest DoWCharTest_snprintf_s
-void DoNumTest(const char *formatstr, int value, const char *checkstr)
+inline void DoNumTest_snprintf_s(const char *formatstr, int value, const char *checkstr)
{
char buf[256] = { 0 };
value, formatstr, checkstr, buf);
}
}
+#define DoNumTest DoNumTest_snprintf_s
-void DoI64Test(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1)
+inline void DoI64Test_snprintf_s(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1)
{
char buf[256] = { 0 };
valuestr, formatstr, checkstr1, buf);
}
}
+#define DoI64Test DoI64Test_snprintf_s
-void DoDoubleTest(const char *formatstr, double value, const char *checkstr1, char
+inline void DoDoubleTest_snprintf_s(const char *formatstr, double value, const char *checkstr1, char
*checkstr2)
{
char buf[256] = { 0 };
value, formatstr, checkstr1, checkstr2, buf);
}
}
+#define DoDoubleTest DoDoubleTest_snprintf_s
-void DoArgumentPrecTest(const char *formatstr, int precision, void *param, char
+inline void DoArgumentPrecTest_snprintf_s(const char *formatstr, int precision, void *param, char
*paramstr, const char *checkstr1, const char *checkstr2)
{
char buf[256];
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_snprintf_s
-void DoArgumentPrecDoubleTest(const char *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_snprintf_s(const char *formatstr, int precision, double param,
const char *checkstr1, const char *checkstr2)
{
char buf[256];
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_snprintf_s
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_snprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test1_paltest_snprintf_test1, "c_runtime/_snprintf_s/test1/paltest_snprintf_test1")
{
char checkstr[] = "hello world";
char buf[256] = { 0 };
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if sprintf_s works correctly
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_snprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test10_paltest_snprintf_test10, "c_runtime/_snprintf_s/test10/paltest_snprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests sprintf_s with octal numbers
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_snprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test11_paltest_snprintf_test11, "c_runtime/_snprintf_s/test11/paltest_snprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests sprintf_s with unsigned numbers
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_snprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test12_paltest_snprintf_test12, "c_runtime/_snprintf_s/test12/paltest_snprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests sprintf_s with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_snprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test13_paltest_snprintf_test13, "c_runtime/_snprintf_s/test13/paltest_snprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests sprintf_s with hex numbers (uppercase)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_snprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test14_paltest_snprintf_test14, "c_runtime/_snprintf_s/test14/paltest_snprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests sprintf_s with exponential format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_snprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test15_paltest_snprintf_test15, "c_runtime/_snprintf_s/test15/paltest_snprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests sprintf_s with exponential format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_snprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test16_paltest_snprintf_test16, "c_runtime/_snprintf_s/test16/paltest_snprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests sprintf_s with decimal point format doubles
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_snprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test17_paltest_snprintf_test17, "c_runtime/_snprintf_s/test17/paltest_snprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests sprintf_s with compact format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_snprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test18_paltest_snprintf_test18, "c_runtime/_snprintf_s/test18/paltest_snprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests sprintf_s with compact format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_snprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test19_paltest_snprintf_test19, "c_runtime/_snprintf_s/test19/paltest_snprintf_test19")
{
int n = -1;
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests sprintf_s with argument specified precision
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_snprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test2_paltest_snprintf_test2, "c_runtime/_snprintf_s/test2/paltest_snprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests sprintf_s with strings
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_snprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test3_paltest_snprintf_test3, "c_runtime/_snprintf_s/test3/paltest_snprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests sprintf_s with wide strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_snprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test4_paltest_snprintf_test4, "c_runtime/_snprintf_s/test4/paltest_snprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests sprintf_s with pointers
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_snprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test6_paltest_snprintf_test6, "c_runtime/_snprintf_s/test6/paltest_snprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name =Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests sprintf_s with characters
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_snprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test7_paltest_snprintf_test7, "c_runtime/_snprintf_s/test7/paltest_snprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests sprintf_s with wide characters
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_snprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test8_paltest_snprintf_test8, "c_runtime/_snprintf_s/test8/paltest_snprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests sprintf_s with decimal numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_snprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_snprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_snprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snprintf_s_test9_paltest_snprintf_test9, "c_runtime/_snprintf_s/test9/paltest_snprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests sprintf_s with integer numbers
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef ___SNWPRINTF_H__
#define ___SNWPRINTF_H__
-void DoWStrTest(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
+inline void DoWStrTest_snwprintf_s(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr), convertC(buf));
}
}
+#define DoWStrTest DoWStrTest_snwprintf_s
-void DoStrTest(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
+inline void DoStrTest_snwprintf_s(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
param, convertC(formatstr), convertC(checkstr), convertC(buf));
}
}
+#define DoStrTest DoStrTest_snwprintf_s
-void DoPointerTest(const WCHAR *formatstr, void* param, const WCHAR *checkstr1)
+inline void DoPointerTest_snwprintf_s(const WCHAR *formatstr, void* param, const WCHAR *checkstr1)
{
WCHAR buf[256] = { 0 };
convertC(checkstr1), convertC(buf));
}
}
+#define DoPointerTest DoPointerTest_snwprintf_s
-void DoCountTest(const WCHAR *formatstr, int param, const WCHAR *checkstr)
+inline void DoCountTest_snwprintf_s(const WCHAR *formatstr, int param, const WCHAR *checkstr)
{
WCHAR buf[512] = { 0 };
int n = -1;
convertC(checkstr), convertC(buf));
}
}
+#define DoCountTest DoCountTest_snwprintf_s
-void DoShortCountTest(const WCHAR *formatstr, int param, const WCHAR *checkstr)
+inline void DoShortCountTest_snwprintf_s(const WCHAR *formatstr, int param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
short int n = -1;
convertC(checkstr), convertC(buf));
}
}
+#define DoShortCountTest DoShortCountTest_snwprintf_s
-void DoCharTest(const WCHAR *formatstr, char param, const WCHAR *checkstr)
+inline void DoCharTest_snwprintf_s(const WCHAR *formatstr, char param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr), convertC(buf));
}
}
+#define DoCharTest DoCharTest_snwprintf_s
-void DoWCharTest(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
+inline void DoWCharTest_snwprintf_s(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr), convertC(buf));
}
}
+#define DoWCharTest DoWCharTest_snwprintf_s
-void DoNumTest(const WCHAR *formatstr, int value, const WCHAR *checkstr)
+inline void DoNumTest_snwprintf_s(const WCHAR *formatstr, int value, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoNumTest DoNumTest_snwprintf_s
-
-void DoI64Test(const WCHAR *formatstr, INT64 param, char *paramdesc,
+inline void DoI64Test_snwprintf_s(const WCHAR *formatstr, INT64 param, char *paramdesc,
const WCHAR *checkstr1)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr1), convertC(buf));
}
}
+#define DoI64Test DoI64Test_snwprintf_s
-void DoDoubleTest(const WCHAR *formatstr, double value, const WCHAR *checkstr1,
+inline void DoDoubleTest_snwprintf_s(const WCHAR *formatstr, double value, const WCHAR *checkstr1,
const WCHAR *checkstr2)
{
WCHAR buf[256] = { 0 };
convertC(checkstr2), convertC(buf));
}
}
+#define DoDoubleTest DoDoubleTest_snwprintf_s
-void DoArgumentPrecTest(const WCHAR *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_snwprintf_s(const WCHAR *formatstr, int precision, void *param,
char *paramstr, const WCHAR *checkstr1, const WCHAR *checkstr2)
{
WCHAR buf[256];
convertC(checkstr1), convertC(checkstr2) ,convertC(buf));
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_snwprintf_s
-void DoArgumentPrecDoubleTest(const WCHAR *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_snwprintf_s(const WCHAR *formatstr, int precision, double param,
const WCHAR *checkstr)
{
WCHAR buf[256];
precision, convertC(checkstr), convertC(buf));
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_snwprintf_s
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_snwprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test1_paltest_snwprintf_test1, "c_runtime/_snwprintf_s/test1/paltest_snwprintf_test1")
{
WCHAR *checkstr;
WCHAR buf[256] = { 0 };
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if swprintf_s works correctly
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_snwprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test10_paltest_snwprintf_test10, "c_runtime/_snwprintf_s/test10/paltest_snwprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests swprintf_s with octal numbers
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_snwprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test11_paltest_snwprintf_test11, "c_runtime/_snwprintf_s/test11/paltest_snwprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests swprintf_s with unsigned numbers
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_snwprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test12_paltest_snwprintf_test12, "c_runtime/_snwprintf_s/test12/paltest_snwprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests swprintf_s with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_snwprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test13_paltest_snwprintf_test13, "c_runtime/_snwprintf_s/test13/paltest_snwprintf_test13")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests swprintf_s with hex numbers (uppercase)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_snwprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test14_paltest_snwprintf_test14, "c_runtime/_snwprintf_s/test14/paltest_snwprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests swprintf_s with exponential format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_snwprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test15_paltest_snwprintf_test15, "c_runtime/_snwprintf_s/test15/paltest_snwprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests swprintf_s with exponential format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_snwprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test16_paltest_snwprintf_test16, "c_runtime/_snwprintf_s/test16/paltest_snwprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests swprintf_s with decimal point format doubles
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_snwprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test17_paltest_snwprintf_test17, "c_runtime/_snwprintf_s/test17/paltest_snwprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests swprintf_s with compact format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_snwprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test18_paltest_snwprintf_test18, "c_runtime/_snwprintf_s/test18/paltest_snwprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests swprintf_s with compact format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_snwprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../_snwprintf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test19_paltest_snwprintf_test19, "c_runtime/_snwprintf_s/test19/paltest_snwprintf_test19")
{
int n = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests swprintf_s with argument specified precision
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_snwprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test2_paltest_snwprintf_test2, "c_runtime/_snwprintf_s/test2/paltest_snwprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests swprintf_s with strings
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_snwprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test3_paltest_snwprintf_test3, "c_runtime/_snwprintf_s/test3/paltest_snwprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests swprintf_s with wide strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_snwprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test4_paltest_snwprintf_test4, "c_runtime/_snwprintf_s/test4/paltest_snwprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests swprintf_s with pointers
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_snwprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test6_paltest_snwprintf_test6, "c_runtime/_snwprintf_s/test6/paltest_snwprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests swprintf_s with characters
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_snwprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test7_paltest_snwprintf_test7, "c_runtime/_snwprintf_s/test7/paltest_snwprintf_test7")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests swprintf_s with wide characters
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_snwprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test8_paltest_snwprintf_test8, "c_runtime/_snwprintf_s/test8/paltest_snwprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests swprintf_s with decimal numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_snwprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_snwprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_snwprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__snwprintf_s_test9_paltest_snwprintf_test9, "c_runtime/_snwprintf_s/test9/paltest_snwprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf_s
-Name = Positive Test for swprintf_s
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests swprintf_s with integer numbers
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_stricmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_stricmp_test1 coreclrpal)
-
-target_link_libraries(paltest_stricmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Note: The _stricmp is dependent on the LC_CTYPE category of the locale,
* and this is ignored by these tests.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__stricmp_test1_paltest_stricmp_test1, "c_runtime/_stricmp/test1/paltest_stricmp_test1")
{
char *str1 = "foo";
char *str2 = "fOo";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _stricmp
-Name = Positive Test for _stricmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Do a lower case compare. Check two strings, only different because they
-= have different capitalization, and they should return 0. Try two strings
-= which will return less than 0 (one is smaller than the other). Also try
-= the opposite, to get a return value greater than 0.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strnicmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strnicmp_test1 coreclrpal)
-
-target_link_libraries(paltest_strnicmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__strnicmp_test1_paltest_strnicmp_test1, "c_runtime/_strnicmp/test1/paltest_strnicmp_test1")
{
char str1[] = "foo";
char str2[] = "foox";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _strnicmp
-Name = Test #1 for _strnicmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Take two strings and compare them, giving different lengths.
-= Comparing str1 and str2 with str2 length, should return <0
-= Comparing str2 and str1 with str2 length, should return >0
-= Comparing str1 and str2 with str1 lenght, should return 0
-= Bring in str3, which has a capital, but this function is doing a lower
-= case compare. Just ensure that two strings which differ only by capitals
-= return 0.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#define __STRINGTEST_H__
/* These functions leaks memory a lot. C'est la vie. */
-int Testvsnprintf(char* buf, size_t count, const char* format, ...)
+inline int Testvsnprintf(char* buf, size_t count, const char* format, ...)
{
int retVal;
va_list arglist;
}
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_vsnprintf_s(const char *formatstr, char* param, const char *checkstr)
{
char buf[256] = { 0 };
param, formatstr, checkstr, buf);
}
}
+#define DoStrTest DoStrTest_vsnprintf_s
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_vsnprintf_s(const char *formatstr, WCHAR* param, const char *checkstr)
{
char buf[256] = { 0 };
convertC(param), formatstr, checkstr, buf);
}
}
+#define DoWStrTest DoWStrTest_vsnprintf_s
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_vsnprintf_s(const char *formatstr, char param, const char *checkstr)
{
char buf[256] = { 0 };
param, param, formatstr, checkstr, buf);
}
}
+#define DoCharTest DoCharTest_vsnprintf_s
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_vsnprintf_s(const char *formatstr, WCHAR param, const char *checkstr)
{
char buf[256] = { 0 };
(char)param, param, formatstr, checkstr, buf);
}
}
+#define DoWCharTest DoWCharTest_vsnprintf_s
-void DoNumTest(const char *formatstr, int value, const char *checkstr)
+inline void DoNumTest_vsnprintf_s(const char *formatstr, int value, const char *checkstr)
{
char buf[256] = { 0 };
value, formatstr, checkstr, buf);
}
}
+#define DoNumTest DoNumTest_vsnprintf_s
-void DoI64Test(const char *formatstr, INT64 value, char *valuestr, const char *checkstr)
+inline void DoI64Test_vsnprintf_s(const char *formatstr, INT64 value, char *valuestr, const char *checkstr)
{
char buf[256] = { 0 };
valuestr, formatstr, checkstr, buf);
}
}
-void DoDoubleTest(const char *formatstr, double value, const char *checkstr1, char
+#define DoI64Test DoI64Test_vsnprintf_s
+
+inline void DoDoubleTest_vsnprintf_s(const char *formatstr, double value, const char *checkstr1, char
*checkstr2)
{
char buf[256] = { 0 };
value, formatstr, checkstr1, checkstr2, buf);
}
}
+#define DoDoubleTest DoDoubleTest_vsnprintf_s
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_vsnprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test1_paltest_vsnprintf_test1, "c_runtime/_vsnprintf_s/test1/paltest_vsnprintf_test1")
{
char checkstr[] = "hello world";
char buf[256] = { 0 };
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_vsnprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test10_paltest_vsnprintf_test10, "c_runtime/_vsnprintf_s/test10/paltest_vsnprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with octal numbers.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_vsnprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test11_paltest_vsnprintf_test11, "c_runtime/_vsnprintf_s/test11/paltest_vsnprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with unsigned numbers.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_vsnprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test12_paltest_vsnprintf_test12, "c_runtime/_vsnprintf_s/test12/paltest_vsnprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with hex numbers (lowercase).
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_vsnprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test13_paltest_vsnprintf_test13, "c_runtime/_vsnprintf_s/test13/paltest_vsnprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with hex numbers (uppercase).
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_vsnprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test14_paltest_vsnprintf_test14, "c_runtime/_vsnprintf_s/test14/paltest_vsnprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with exponential format doubles (lowercase).
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_vsnprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test15_paltest_vsnprintf_test15, "c_runtime/_vsnprintf_s/test15/paltest_vsnprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with exponential format doubles (uppercase).
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_vsnprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test16_paltest_vsnprintf_test16, "c_runtime/_vsnprintf_s/test16/paltest_vsnprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with decimal point format doubles.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_vsnprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test17_paltest_vsnprintf_test17, "c_runtime/_vsnprintf_s/test17/paltest_vsnprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with compact format doubles (lowercase).
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_vsnprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test18_paltest_vsnprintf_test18, "c_runtime/_vsnprintf_s/test18/paltest_vsnprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with compact format doubles (uppercase).
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_vsnprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test19_paltest_vsnprintf_test19, "c_runtime/_vsnprintf_s/test19/paltest_vsnprintf_test19")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with argument specified precision.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_vsnprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test2_paltest_vsnprintf_test2, "c_runtime/_vsnprintf_s/test2/paltest_vsnprintf_test2")
{
WCHAR szwStr[] = {'b','a','r','\0'};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with strings.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_vsnprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test3_paltest_vsnprintf_test3, "c_runtime/_vsnprintf_s/test3/paltest_vsnprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with wide strings.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_vsnprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test4_paltest_vsnprintf_test4, "c_runtime/_vsnprintf_s/test4/paltest_vsnprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with pointers.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_vsnprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test6_paltest_vsnprintf_test6, "c_runtime/_vsnprintf_s/test6/paltest_vsnprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with characters.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_vsnprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test7_paltest_vsnprintf_test7, "c_runtime/_vsnprintf_s/test7/paltest_vsnprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with wide characters.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_vsnprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test8_paltest_vsnprintf_test8, "c_runtime/_vsnprintf_s/test8/paltest_vsnprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with decimal numbers.
-= This test is modeled after sprintf_s.
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_vsnprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_vsnprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnprintf_s_test9_paltest_vsnprintf_test9, "c_runtime/_vsnprintf_s/test9/paltest_vsnprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnprintf
-Name = Positive Test for _vsnprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests the PAL implementation of the _vsnprintf function.
-= Tests _vsnprintf with integer numbers.
-= This test is modeled after sprintf_s.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#define ___VSNWPRINTF_H__
/* These functions leaks memory a lot. C'est la vie. */
-int TestVsnwprintf_s(char16_t* buf, size_t count, const char16_t* format, ...)
+inline int TestVsnwprintf_s(char16_t* buf, size_t count, const char16_t* format, ...)
{
int retVal = 0;
va_list arglist;
return( retVal);
}
-
-void DoWStrTest(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
+inline void DoWStrTest_vsnwprintf_s(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoWStrTest DoWStrTest_vsnwprintf_s
-void DoStrTest(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
+inline void DoStrTest_vsnwprintf_s(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoStrTest DoStrTest_vsnwprintf_s
-void DoCharTest(const WCHAR *formatstr, char param, const WCHAR *checkstr)
+inline void DoCharTest_vsnwprintf_s(const WCHAR *formatstr, char param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoCharTest DoCharTest_vsnwprintf_s
-void DoWCharTest(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
+inline void DoWCharTest_vsnwprintf_s(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoWCharTest DoWCharTest_vsnwprintf_s
-void DoNumTest(const WCHAR *formatstr, int value, const WCHAR *checkstr)
+inline void DoNumTest_vsnwprintf_s(const WCHAR *formatstr, int value, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoNumTest DoNumTest_vsnwprintf_s
-void DoI64NumTest(const WCHAR *formatstr, INT64 value, char *valuestr, const WCHAR *checkstr)
+inline void DoI64NumTest_vsnwprintf_s(const WCHAR *formatstr, INT64 value, char *valuestr, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
-void DoDoubleTest(const WCHAR *formatstr, double value,
+#define DoI64NumTest DoI64NumTest_vsnwprintf_s
+
+inline void DoDoubleTest_vsnwprintf_s(const WCHAR *formatstr, double value,
const WCHAR *checkstr1, const WCHAR *checkstr2)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoDoubleTest DoDoubleTest_vsnwprintf_s
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_vsnwprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test1_paltest_vsnwprintf_test1, "c_runtime/_vsnwprintf_s/test1/paltest_vsnwprintf_test1")
{
WCHAR *checkstr;
WCHAR buf[256] = { 0 };
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= General test to see if _vsnwprintf_s works correctly.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_vsnwprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test10_paltest_vsnwprintf_test10, "c_runtime/_vsnwprintf_s/test10/paltest_vsnwprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with octal numbers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_vsnwprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test11_paltest_vsnwprintf_test11, "c_runtime/_vsnwprintf_s/test11/paltest_vsnwprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with unsigned numbers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_vsnwprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test12_paltest_vsnwprintf_test12, "c_runtime/_vsnwprintf_s/test12/paltest_vsnwprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with hex numbers (lowercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_vsnwprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test13_paltest_vsnwprintf_test13, "c_runtime/_vsnwprintf_s/test13/paltest_vsnwprintf_test13")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with hex numbers (uppercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_vsnwprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test14_paltest_vsnwprintf_test14, "c_runtime/_vsnwprintf_s/test14/paltest_vsnwprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with exponential format doubles (lowercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_vsnwprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test15_paltest_vsnwprintf_test15, "c_runtime/_vsnwprintf_s/test15/paltest_vsnwprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with exponential format doubles (uppercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_vsnwprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test16_paltest_vsnwprintf_test16, "c_runtime/_vsnwprintf_s/test16/paltest_vsnwprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with decimal point format doubles.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_vsnwprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test17_paltest_vsnwprintf_test17, "c_runtime/_vsnwprintf_s/test17/paltest_vsnwprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with compact format doubles (lowercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_vsnwprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test18_paltest_vsnwprintf_test18, "c_runtime/_vsnwprintf_s/test18/paltest_vsnwprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with compact format doubles (uppercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_vsnwprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
#define DOTEST(a,b,c,d,e) DoTest(a,b,(void*)c,d,e)
-void DoArgumentPrecTest(WCHAR *formatstr, int precision, void *param,
+void DoArgumentPrecTest_vsnwprintf_s(WCHAR *formatstr, int precision, void *param,
WCHAR *paramstr, WCHAR *checkstr1, WCHAR *checkstr2)
{
WCHAR buf[256];
convertC(buf));
}
}
-void DoArgumentPrecDoubleTest(WCHAR *formatstr, int precision, double param,
+void DoArgumentPrecDoubleTest_vsnwprintf_s(WCHAR *formatstr, int precision, double param,
WCHAR *checkstr1, WCHAR *checkstr2)
{
WCHAR buf[256];
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test19_paltest_vsnwprintf_test19, "c_runtime/_vsnwprintf_s/test19/paltest_vsnwprintf_test19")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
}
- DoArgumentPrecTest(convert("%.*s"), 2, (void*)convert("bar"), convert("bar"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*s"), 2, (void*)convert("bar"), convert("bar"),
convert("ba"), convert("ba"));
- DoArgumentPrecTest(convert("%.*c"), 0, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*c"), 0, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*c"), 4, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*c"), 4, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*C"), 0, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*C"), 0, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*C"), 4, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*C"), 4, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*d"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*d"), 1, (void*)42, convert("42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*d"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*d"), 3, (void*)42, convert("42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*i"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*i"), 1, (void*)42, convert("42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*i"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*i"), 3, (void*)42, convert("42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*o"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*o"), 1, (void*)42, convert("42"),
convert("52"), convert("52"));
- DoArgumentPrecTest(convert("%.*o"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*o"), 3, (void*)42, convert("42"),
convert("052"), convert("052"));
- DoArgumentPrecTest(convert("%.*u"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*u"), 1, (void*)42, convert("42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*u"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*u"), 3, (void*)42, convert("42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*x"), 1, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*x"), 1, (void*)0x42, convert("0x42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*x"), 3, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*x"), 3, (void*)0x42, convert("0x42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*X"), 1, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*X"), 1, (void*)0x42, convert("0x42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*X"), 3, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vsnwprintf_s(convert("%.*X"), 3, (void*)0x42, convert("0x42"),
convert("042"), convert("042"));
- DoArgumentPrecDoubleTest(convert("%.*e"), 1, 2.01, convert("2.0e+000"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*e"), 1, 2.01, convert("2.0e+000"),
convert("2.0e+00"));
- DoArgumentPrecDoubleTest(convert("%.*e"), 3, 2.01, convert("2.010e+000"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*e"), 3, 2.01, convert("2.010e+000"),
convert("2.010e+00"));
- DoArgumentPrecDoubleTest(convert("%.*E"), 1, 2.01, convert("2.0E+000"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*E"), 1, 2.01, convert("2.0E+000"),
convert("2.0E+00"));
- DoArgumentPrecDoubleTest(convert("%.*E"), 3, 2.01, convert("2.010E+000"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*E"), 3, 2.01, convert("2.010E+000"),
convert("2.010E+00"));
- DoArgumentPrecDoubleTest(convert("%.*f"), 1, 2.01, convert("2.0"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*f"), 1, 2.01, convert("2.0"),
convert("2.0"));
- DoArgumentPrecDoubleTest(convert("%.*f"), 3, 2.01, convert("2.010"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*f"), 3, 2.01, convert("2.010"),
convert("2.010"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 1, 256.01, convert("3e+002"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*g"), 1, 256.01, convert("3e+002"),
convert("3e+02"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 3, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*g"), 3, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 4, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*g"), 4, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 6, 256.01, convert("256.01"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*g"), 6, 256.01, convert("256.01"),
convert("256.01"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 1, 256.01, convert("3E+002"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*G"), 1, 256.01, convert("3E+002"),
convert("3E+02"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 3, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*G"), 3, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 4, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*G"), 4, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 6, 256.01, convert("256.01"),
+ DoArgumentPrecDoubleTest_vsnwprintf_s(convert("%.*G"), 6, 256.01, convert("256.01"),
convert("256.01"));
PAL_Terminate();
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with argument specified precision.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_vsnwprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test2_paltest_vsnwprintf_test2, "c_runtime/_vsnwprintf_s/test2/paltest_vsnwprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with strings.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_vsnwprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test3_paltest_vsnwprintf_test3, "c_runtime/_vsnwprintf_s/test3/paltest_vsnwprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with wide strings.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_vsnwprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test4_paltest_vsnwprintf_test4, "c_runtime/_vsnwprintf_s/test4/paltest_vsnwprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with pointers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_vsnwprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test6_paltest_vsnwprintf_test6, "c_runtime/_vsnwprintf_s/test6/paltest_vsnwprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with characters.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_vsnwprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test7_paltest_vsnwprintf_test7, "c_runtime/_vsnwprintf_s/test7/paltest_vsnwprintf_test7")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with wide characters.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_vsnwprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test8_paltest_vsnwprintf_test8, "c_runtime/_vsnwprintf_s/test8/paltest_vsnwprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with decimal numbers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_vsnwprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsnwprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_vsnwprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__vsnwprintf_s_test9_paltest_vsnwprintf_test9, "c_runtime/_vsnwprintf_s/test9/paltest_vsnwprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _vsnwprintf_s
-Name = Positive Test for _vsnwprintf_s
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests the PAL implementation of the _vsnwprintf_s function.
-= Tests _vsnwprintf_s with integer numbers
-= This test is modeled after _snwprintf.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcsicmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcsicmp_test1 coreclrpal)
-
-target_link_libraries(paltest_wcsicmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Note: The _wcsicmp is dependent on the LC_CTYPE category of the locale,
* and this is ignored by these tests.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__wcsicmp_test1_paltest_wcsicmp_test1, "c_runtime/_wcsicmp/test1/paltest_wcsicmp_test1")
{
WCHAR str1[] = {'f','o','o',0};
WCHAR str2[] = {'f','O','o',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wcsicmp
-Name = Test #1 for _wcsicmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that _wcsicmp correctly compares two strings with case insensitivity.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcslwr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcslwr_test1 coreclrpal)
-
-target_link_libraries(paltest_wcslwr_test1
- ${COMMON_TEST_LIBRARIES}
-)
/* uses memcmp,wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__wcslwr_test1_paltest_wcslwr_test1, "c_runtime/_wcslwr/test1/paltest_wcslwr_test1")
{
WCHAR *test_str = NULL;
WCHAR *expect_str = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wcslwr
-Name = Positive Test for _wcslwr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Using memcmp to check the result, convert a wide character string
-= with capitals, to all lowercase using this function.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcsnicmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcsnicmp_test1 coreclrpal)
-
-target_link_libraries(paltest_wcsnicmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: uses wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime__wcsnicmp_test1_paltest_wcsnicmp_test1, "c_runtime/_wcsnicmp/test1/paltest_wcsnicmp_test1")
{
WCHAR str1[] = {'f','o','o',0};
WCHAR str2[] = {'f','o','o','x',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wcsnicmp
-Name = Positive Test for _wcsnicmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Take two wide strings and compare them, giving different lengths.
-= Comparing str1 and str2 with str2 length, should return <0
-= Comparing str2 and str1 with str2 length, should return >0
-= Comparing str1 and str2 with str1 lenght, should return 0
-= Bring in str3, which has a capital, but this function is doing a lower
-= case compare. Just ensure that two strings which differ only by capitals
-= return 0.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wfopen_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wfopen_test1 coreclrpal)
-
-target_link_libraries(paltest_wfopen_test1
- ${COMMON_TEST_LIBRARIES}
-)
WCHAR mode[20];
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wfopen_test1_paltest_wfopen_test1, "c_runtime/_wfopen/test1/paltest_wfopen_test1")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wfopen
-Name = Positive Test for _wfopen
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= This test simply attempts to open a number of files with different
-= modes. It checks to ensure a valid file pointer is returned. It
-= doesn't do any checking to ensure the mode is really what it claims.
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_wfopen_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_wfopen_test2 coreclrpal)
-
-target_link_libraries(paltest_wfopen_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wfopen_test2_paltest_wfopen_test2, "c_runtime/_wfopen/test2/paltest_wfopen_test2")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wfopen
-Name = Positive Test for _wfopen
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure that you can write to a 'w' mode file. And that you can't
-= read from a 'w' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_wfopen_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_wfopen_test3 coreclrpal)
-
-target_link_libraries(paltest_wfopen_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wfopen_test3_paltest_wfopen_test3, "c_runtime/_wfopen/test3/paltest_wfopen_test3")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wfopen
-Name = Positive Test for _wfopen
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Test to ensure that you can write to a 'w+' mode file. And that you can
-= read from a 'w+' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_wfopen_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_wfopen_test4 coreclrpal)
-
-target_link_libraries(paltest_wfopen_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wfopen_test4_paltest_wfopen_test4, "c_runtime/_wfopen/test4/paltest_wfopen_test4")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wfopen
-Name = Positive Test for _wfopen
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test to ensure that you can't write to a 'r' mode file. And that you can
-= read from a 'r' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_wfopen_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_wfopen_test5 coreclrpal)
-
-target_link_libraries(paltest_wfopen_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wfopen_test5_paltest_wfopen_test5, "c_runtime/_wfopen/test5/paltest_wfopen_test5")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wfopen
-Name = Positive Test for _wfopen
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Test to ensure that you can write to a 'r+' mode file. And that you can
-= read from a 'r+' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_wfopen_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_wfopen_test6 coreclrpal)
-
-target_link_libraries(paltest_wfopen_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wfopen_test6_paltest_wfopen_test6, "c_runtime/_wfopen/test6/paltest_wfopen_test6")
{
FILE *fp;
char buffer[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wfopen
-Name = Positive Test for _wfopen
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Test to ensure that you can write to a 'a' mode file. And that you can't
-= read from a 'a' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_wfopen_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_wfopen_test7 coreclrpal)
-
-target_link_libraries(paltest_wfopen_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wfopen_test7_paltest_wfopen_test7, "c_runtime/_wfopen/test7/paltest_wfopen_test7")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wfopen
-Name = Positive Test for _wfopen
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Test to ensure that you can write to a 'a+' mode file. And that you can
-= read from a 'a+' mode file.
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wtoi_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wtoi_test1 coreclrpal)
-
-target_link_libraries(paltest_wtoi_test1
- ${COMMON_TEST_LIBRARIES}
-)
char avalue[20];
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime__wtoi_test1_paltest_wtoi_test1, "c_runtime/_wtoi/test1/paltest_wtoi_test1")
{
int result=0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = _wtoi
-Name = Test _wtoi on valid and invalid ints in a variety of formats
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the _wtoi function.
-= Check to ensure that the different ints are handled properly.
-= Exponents and decimals should be treated as invalid characters,
-= causing the conversion to quit. Whitespace before the int is valid.
-= Check would-be octal/hex digits to ensure they're treated no
-= differently than other strings.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- abs.cpp
-)
-
-add_executable(paltest_abs_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_abs_test1 coreclrpal)
-
-target_link_libraries(paltest_abs_test1
- ${COMMON_TEST_LIBRARIES}
-)
int nResult;
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_abs_test1_paltest_abs_test1, "c_runtime/abs/test1/paltest_abs_test1")
{
int i = 0;
int nRc = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C runtime
-Function = abs
-Name = test for abs (test 1)
-Type = DEFAULT
-EXE1 = abs
-Description
-= Test abs by passing a list of values and ensuring the
-= proper absolute value is returned.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_acos_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_acos_test1 coreclrpal)
-
-target_link_libraries(paltest_acos_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * acos_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl acos_test1_validate(double value, double expected, double variance)
{
double result = acos(value);
}
/**
- * validate
+ * acos_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl acos_test1_validate_isnan(double value)
{
double result = acos(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_acos_test1_paltest_acos_test1, "c_runtime/acos/test1/paltest_acos_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ acos_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ acos_test1_validate_isnan(PAL_NEGINF);
+ acos_test1_validate_isnan(PAL_NAN);
+ acos_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = acos
-Name = Positive Test for acos
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the acos() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_acosf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_acosf_test1 coreclrpal)
-
-target_link_libraries(paltest_acosf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * acosf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl acosf_test1_validate(float value, float expected, float variance)
{
float result = acosf(value);
}
/**
- * validate
+ * acosf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl acosf_test1_validate_isnan(float value)
{
float result = acosf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_acosf_test1_paltest_acosf_test1, "c_runtime/acosf/test1/paltest_acosf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ acosf_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ acosf_test1_validate_isnan(PAL_NEGINF);
+ acosf_test1_validate_isnan(PAL_NAN);
+ acosf_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = acosf
-Name = Positive Test for acosf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the acosf() function,
-= checking each for the expfected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_acosh_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_acosh_test1 coreclrpal)
-
-target_link_libraries(paltest_acosh_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * acosh_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl acosh_test1_validate(double value, double expected, double variance)
{
double result = acosh(value);
}
/**
- * validate
+ * acosh_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl acosh_test1_validate_isnan(double value)
{
double result = acosh(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_acosh_test1_paltest_acosh_test1, "c_runtime/acosh/test1/paltest_acosh_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ acosh_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ acosh_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = acosh
-Name = Positive Test for acosh
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the acosh() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_acoshf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_acoshf_test1 coreclrpal)
-
-target_link_libraries(paltest_acoshf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * acoshf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl acoshf_test1_validate(float value, float expected, float variance)
{
float result = acoshf(value);
}
/**
- * validate
+ * acoshf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl acoshf_test1_validate_isnan(float value)
{
float result = acoshf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_acoshf_test1_paltest_acoshf_test1, "c_runtime/acoshf/test1/paltest_acoshf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ acoshf_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ acoshf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = acoshf
-Name = Positive Test for acoshf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the acoshf() function,
-= checking each for the expfected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_asin_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_asin_test1 coreclrpal)
-
-target_link_libraries(paltest_asin_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * asin_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl asin_test1_validate(double value, double expected, double variance)
{
double result = asin(value);
}
/**
- * validate
+ * asin_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl asin_test1_validate_isnan(double value)
{
double result = asin(value);
}
/**
- * validate
+ * asin_test1_validate
*
* test validation function for values returning +INF
*/
-void __cdecl validate_isinf_positive(double value)
+void __cdecl asin_test1_validate_isinf_positive(double value)
{
double result = asin(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_asin_test1_paltest_asin_test1, "c_runtime/asin/test1/paltest_asin_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ asin_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ asin_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ asin_test1_validate_isnan(PAL_NEGINF);
+ asin_test1_validate_isnan(PAL_NAN);
+ asin_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = asin
-Name = Positive Test for asin
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the asin() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_asinf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_asinf_test1 coreclrpal)
-
-target_link_libraries(paltest_asinf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * asinf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl asinf_test1_validate(float value, float expected, float variance)
{
float result = asinf(value);
}
/**
- * validate
+ * asinf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl asinf_test1_validate_isnan(float value)
{
float result = asinf(value);
}
/**
- * validate
+ * asinf_test1_validate
*
* test validation function for values returning +INF
*/
-void __cdecl validate_isinf_positive(float value)
+void __cdecl asinf_test1_validate_isinf_positive(float value)
{
float result = asinf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_asinf_test1_paltest_asinf_test1, "c_runtime/asinf/test1/paltest_asinf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ asinf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ asinf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ asinf_test1_validate_isnan(PAL_NEGINF);
+ asinf_test1_validate_isnan(PAL_NAN);
+ asinf_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = asinf
-Name = Positive Test for asinf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the asinf() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_asinh_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_asinh_test1 coreclrpal)
-
-target_link_libraries(paltest_asinh_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * asinh_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl asinh_test1_validate(double value, double expected, double variance)
{
double result = asinh(value);
}
/**
- * validate
+ * asinh_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl asinh_test1_validate_isnan(double value)
{
double result = asinh(value);
}
/**
- * validate
+ * asinh_test1_validate
*
* test validation function for values returning +INF
*/
-void __cdecl validate_isinf_positive(double value)
+void __cdecl asinh_test1_validate_isinf_positive(double value)
{
double result = asinh(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_asinh_test1_paltest_asinh_test1, "c_runtime/asinh/test1/paltest_asinh_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ asinh_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ asinh_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ asinh_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = asinh
-Name = Positive Test for asinh
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the asinh() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_asinhf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_asinhf_test1 coreclrpal)
-
-target_link_libraries(paltest_asinhf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * asinhf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl asinhf_test1_validate(float value, float expected, float variance)
{
float result = asinhf(value);
}
/**
- * validate
+ * asinhf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl asinhf_test1_validate_isnan(float value)
{
float result = asinhf(value);
}
/**
- * validate
+ * asinhf_test1_validate
*
* test validation function for values returning +INF
*/
-void __cdecl validate_isinf_positive(float value)
+void __cdecl asinhf_test1_validate_isinf_positive(float value)
{
float result = asinhf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_asinhf_test1_paltest_asinhf_test1, "c_runtime/asinhf/test1/paltest_asinhf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ asinhf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ asinhf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ asinhf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = asinhf
-Name = Positive Test for asinhf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the asinhf() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_atan_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atan_test1 coreclrpal)
-
-target_link_libraries(paltest_atan_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * atan_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl atan_test1_validate(double value, double expected, double variance)
{
double result = atan(value);
}
/**
- * validate
+ * atan_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl atan_test1_validate_isnan(double value)
{
double result = atan(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atan_test1_paltest_atan_test1, "c_runtime/atan/test1/paltest_atan_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ atan_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ atan_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ atan_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atan
-Name = Positive Test for atan
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the atan() function,
-= checking each for the expected result.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_atan2_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atan2_test1 coreclrpal)
-
-target_link_libraries(paltest_atan2_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * atan2_test1_validate
*
* test validation function
*/
-void __cdecl validate(double y, double x, double expected, double variance)
+void __cdecl atan2_test1_validate(double y, double x, double expected, double variance)
{
double result = atan2(y, x);
}
/**
- * validate
+ * atan2_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double y, double x)
+void __cdecl atan2_test1_validate_isnan(double y, double x)
{
double result = atan2(y, x);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atan2_test1_paltest_atan2_test1, "c_runtime/atan2/test1/paltest_atan2_test1")
{
struct test tests[] =
{
{
const double pi = 3.1415926535897932;
- validate( tests[i].y, tests[i].x, tests[i].expected, tests[i].variance);
- validate(-tests[i].y, tests[i].x, -tests[i].expected, tests[i].variance);
- validate( tests[i].y, -tests[i].x, pi - tests[i].expected, tests[i].variance);
- validate(-tests[i].y, -tests[i].x, tests[i].expected - pi, tests[i].variance);
+ atan2_test1_validate( tests[i].y, tests[i].x, tests[i].expected, tests[i].variance);
+ atan2_test1_validate(-tests[i].y, tests[i].x, -tests[i].expected, tests[i].variance);
+ atan2_test1_validate( tests[i].y, -tests[i].x, pi - tests[i].expected, tests[i].variance);
+ atan2_test1_validate(-tests[i].y, -tests[i].x, tests[i].expected - pi, tests[i].variance);
}
- validate_isnan(PAL_NEGINF, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_NEGINF);
- validate_isnan(PAL_NAN, PAL_POSINF);
- validate_isnan(PAL_POSINF, PAL_NAN);
+ atan2_test1_validate_isnan(PAL_NEGINF, PAL_NAN);
+ atan2_test1_validate_isnan(PAL_NAN, PAL_NEGINF);
+ atan2_test1_validate_isnan(PAL_NAN, PAL_POSINF);
+ atan2_test1_validate_isnan(PAL_POSINF, PAL_NAN);
- validate_isnan(PAL_NAN, -1);
- validate_isnan(PAL_NAN, -0.0);
- validate_isnan(PAL_NAN, 0);
- validate_isnan(PAL_NAN, 1);
+ atan2_test1_validate_isnan(PAL_NAN, -1);
+ atan2_test1_validate_isnan(PAL_NAN, -0.0);
+ atan2_test1_validate_isnan(PAL_NAN, 0);
+ atan2_test1_validate_isnan(PAL_NAN, 1);
- validate_isnan(-1, PAL_NAN);
- validate_isnan(-0.0, PAL_NAN);
- validate_isnan( 0, PAL_NAN);
- validate_isnan( 1, PAL_NAN);
+ atan2_test1_validate_isnan(-1, PAL_NAN);
+ atan2_test1_validate_isnan(-0.0, PAL_NAN);
+ atan2_test1_validate_isnan( 0, PAL_NAN);
+ atan2_test1_validate_isnan( 1, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_NAN);
+ atan2_test1_validate_isnan(PAL_NAN, PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atan2
-Name = Test #1 for atan2
-Type = DEFAULT
-EXE1 = test1
-Description
-=Tests that atan2 returns correct values for a subset of values.
-=Tests with positive and negative values of x and y to ensure
-=atan2 is returning results from the correct quadrant.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_atan2f_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atan2f_test1 coreclrpal)
-
-target_link_libraries(paltest_atan2f_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * atan2f_test1_validate
*
* test validation function
*/
-void __cdecl validate(float y, float x, float expected, float variance)
+void __cdecl atan2f_test1_validate(float y, float x, float expected, float variance)
{
float result = atan2f(y, x);
}
/**
- * validate
+ * atan2f_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float y, float x)
+void __cdecl atan2f_test1_validate_isnan(float y, float x)
{
float result = atan2f(y, x);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atan2f_test1_paltest_atan2f_test1, "c_runtime/atan2f/test1/paltest_atan2f_test1")
{
struct test tests[] =
{
{
const float pi = 3.14159265f;
- validate( tests[i].y, tests[i].x, tests[i].expected, tests[i].variance);
- validate(-tests[i].y, tests[i].x, -tests[i].expected, tests[i].variance);
- validate( tests[i].y, -tests[i].x, pi - tests[i].expected, tests[i].variance);
- validate(-tests[i].y, -tests[i].x, tests[i].expected - pi, tests[i].variance);
+ atan2f_test1_validate( tests[i].y, tests[i].x, tests[i].expected, tests[i].variance);
+ atan2f_test1_validate(-tests[i].y, tests[i].x, -tests[i].expected, tests[i].variance);
+ atan2f_test1_validate( tests[i].y, -tests[i].x, pi - tests[i].expected, tests[i].variance);
+ atan2f_test1_validate(-tests[i].y, -tests[i].x, tests[i].expected - pi, tests[i].variance);
}
- validate_isnan(PAL_NEGINF, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_NEGINF);
- validate_isnan(PAL_NAN, PAL_POSINF);
- validate_isnan(PAL_POSINF, PAL_NAN);
+ atan2f_test1_validate_isnan(PAL_NEGINF, PAL_NAN);
+ atan2f_test1_validate_isnan(PAL_NAN, PAL_NEGINF);
+ atan2f_test1_validate_isnan(PAL_NAN, PAL_POSINF);
+ atan2f_test1_validate_isnan(PAL_POSINF, PAL_NAN);
- validate_isnan(PAL_NAN, -1);
- validate_isnan(PAL_NAN, -0.0f);
- validate_isnan(PAL_NAN, 0);
- validate_isnan(PAL_NAN, 1);
+ atan2f_test1_validate_isnan(PAL_NAN, -1);
+ atan2f_test1_validate_isnan(PAL_NAN, -0.0f);
+ atan2f_test1_validate_isnan(PAL_NAN, 0);
+ atan2f_test1_validate_isnan(PAL_NAN, 1);
- validate_isnan(-1, PAL_NAN);
- validate_isnan(-0.0f, PAL_NAN);
- validate_isnan( 0, PAL_NAN);
- validate_isnan( 1, PAL_NAN);
+ atan2f_test1_validate_isnan(-1, PAL_NAN);
+ atan2f_test1_validate_isnan(-0.0f, PAL_NAN);
+ atan2f_test1_validate_isnan( 0, PAL_NAN);
+ atan2f_test1_validate_isnan( 1, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_NAN);
+ atan2f_test1_validate_isnan(PAL_NAN, PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atan2f
-Name = Test #1 for atan2f
-Type = DEFAULT
-EXE1 = test1
-Description
-=Tests that atan2f returns correct values for a subset of values.
-=Tests with positive and negative values of x and y to ensure
-=atan2f is returning results from the correct quadrant.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_atanf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atanf_test1 coreclrpal)
-
-target_link_libraries(paltest_atanf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * atanf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl atanf_test1_validate(float value, float expected, float variance)
{
float result = atanf(value);
}
/**
- * validate
+ * atanf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl atanf_test1_validate_isnan(float value)
{
float result = atanf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atanf_test1_paltest_atanf_test1, "c_runtime/atanf/test1/paltest_atanf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ atanf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ atanf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ atanf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atanf
-Name = Positive Test for atanf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the atanf() function,
-= checking each for the expected result.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_atanh_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atanh_test1 coreclrpal)
-
-target_link_libraries(paltest_atanh_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * atanh_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl atanh_test1_validate(double value, double expected, double variance)
{
double result = atanh(value);
}
/**
- * validate
+ * atanh_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl atanh_test1_validate_isnan(double value)
{
double result = atanh(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atanh_test1_paltest_atanh_test1, "c_runtime/atanh/test1/paltest_atanh_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ atanh_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ atanh_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ atanh_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atanh
-Name = Positive Test for atanh
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the atanh() function,
-= checking each for the expected result.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_atanhf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atanhf_test1 coreclrpal)
-
-target_link_libraries(paltest_atanhf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * atanhf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl atanhf_test1_validate(float value, float expected, float variance)
{
float result = atanhf(value);
}
/**
- * validate
+ * atanhf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl atanhf_test1_validate_isnan(float value)
{
float result = atanhf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atanhf_test1_paltest_atanhf_test1, "c_runtime/atanhf/test1/paltest_atanhf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ atanhf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ atanhf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ atanhf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atanhf
-Name = Positive Test for atanhf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the atanhf() function,
-= checking each for the expected result.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_atof_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atof_test1 coreclrpal)
-
-target_link_libraries(paltest_atof_test1
- ${COMMON_TEST_LIBRARIES}
-)
char avalue[20];
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atof_test1_paltest_atof_test1, "c_runtime/atof/test1/paltest_atof_test1")
{
int i = 0;
double f = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atof
-Name = Positive Test for atof
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to atof() a series of strings containing floats, checking that
-= each one is correctly extracted.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_atoi_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_atoi_test1 coreclrpal)
-
-target_link_libraries(paltest_atoi_test1
- ${COMMON_TEST_LIBRARIES}
-)
char avalue[20];
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_atoi_test1_paltest_atoi_test1, "c_runtime/atoi/test1/paltest_atoi_test1")
{
int result=0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = atoi
-Name = Positive Test for atoi
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the atoi function.
-= Check to ensure that the different ints (normal, negative, decimal,
-= exponent), all work as expected with this function.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_bsearch_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_bsearch_test1 coreclrpal)
-
-target_link_libraries(paltest_bsearch_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl charcmp(const void *pa, const void *pb)
+int __cdecl charcmp_bsearch_test1(const void *pa, const void *pb)
{
return memcmp(pa, pb, 1);
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_bsearch_test1_paltest_bsearch_test1, "c_runtime/bsearch/test1/paltest_bsearch_test1")
{
const char array[] = "abcdefghij";
}
found = (char *)bsearch(&"d", array, sizeof(array) - 1, (sizeof(char))
- , charcmp);
+ , charcmp_bsearch_test1);
if (found != array + 3)
{
Fail ("bsearch was unable to find a specified character in a "
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = bsearch
-Name = Positive Test for bsearch
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Calls bsearch to find a character in a sorted buffer, and
-= verifies that the correct position is returned.
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_bsearch_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_bsearch_test2 coreclrpal)
-
-target_link_libraries(paltest_bsearch_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl charcmp(const void *pa, const void *pb)
+int __cdecl charcmp_bsearch_test2(const void *pa, const void *pb)
{
return *(const char *)pa - *(const char *)pb;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_bsearch_test2_paltest_bsearch_test2, "c_runtime/bsearch/test2/paltest_bsearch_test2")
{
const char array[] = "abcefghij";
while (*candidate) {
found = (char *)bsearch(candidate, array, sizeof(array) - 1,
- (sizeof(char)), charcmp);
+ (sizeof(char)), charcmp_bsearch_test2);
if (found != NULL)
{
Fail ("ERROR: bsearch was able to find a specified character '%c' "
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = bsearch
-Name = Negative Test for bsearch
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Calls bsearch to find a character in a sorted buffer,
-= that does not exist.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_cbrt_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_cbrt_test1 coreclrpal)
-
-target_link_libraries(paltest_cbrt_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * cbrt_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl cbrt_test1_validate(double value, double expected, double variance)
{
double result = cbrt(value);
}
/**
- * validate
+ * cbrt_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl cbrt_test1_validate_isnan(double value)
{
double result = cbrt(value);
}
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_cbrt_test1_paltest_cbrt_test1, "c_runtime/cbrt/test1/paltest_cbrt_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate(-0.0, -0.0, PAL_EPSILON);
- validate( 0.0, 0.0, PAL_EPSILON);
+ cbrt_test1_validate(-0.0, -0.0, PAL_EPSILON);
+ cbrt_test1_validate( 0.0, 0.0, PAL_EPSILON);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ cbrt_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
+ cbrt_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ cbrt_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = cbrt
-Name = Call cbrt on positive values and zero.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the cbrt function on a positive value, a positive value
-= with a decimal and on the maxium possible double value.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_cbrtf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_cbrtf_test1 coreclrpal)
-
-target_link_libraries(paltest_cbrtf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * cbrtf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl cbrtf_test1_validate(float value, float expected, float variance)
{
float result = cbrtf(value);
}
/**
- * validate
+ * cbrtf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl cbrtf_test1_validate_isnan(float value)
{
float result = cbrtf(value);
}
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_cbrtf_test1_paltest_cbrtf_test1, "c_runtime/cbrtf/test1/paltest_cbrtf_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate(-0.0f, -0.0f, PAL_EPSILON);
- validate( 0.0f, 0.0f, PAL_EPSILON);
+ cbrtf_test1_validate(-0.0f, -0.0f, PAL_EPSILON);
+ cbrtf_test1_validate( 0.0f, 0.0f, PAL_EPSILON);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ cbrtf_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
+ cbrtf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ cbrtf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = cbrtf
-Name = Call cbrtf on positive values and zero.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the cbrtf function on a positive value, a positive value
-= with a decimal and on the maxium possible float value.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_ceil_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_ceil_test1 coreclrpal)
-
-target_link_libraries(paltest_ceil_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * ceil_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl ceil_test1_validate(double value, double expected, double variance)
{
double result = ceil(value);
}
/**
- * validate
+ * ceil_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl ceil_test1_validate_isnan(double value)
{
double result = ceil(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_ceil_test1_paltest_ceil_test1, "c_runtime/ceil/test1/paltest_ceil_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate( 0, 0, PAL_EPSILON);
- validate(-0.0, 0, PAL_EPSILON);
+ ceil_test1_validate( 0, 0, PAL_EPSILON);
+ ceil_test1_validate(-0.0, 0, PAL_EPSILON);
- validate( 1, 1, PAL_EPSILON * 10);
- validate(-1.0, -1, PAL_EPSILON * 10);
+ ceil_test1_validate( 1, 1, PAL_EPSILON * 10);
+ ceil_test1_validate(-1.0, -1, PAL_EPSILON * 10);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, 1 - tests[i].expected, tests[i].variance);
+ ceil_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ ceil_test1_validate(-tests[i].value, 1 - tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ ceil_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = ceil
-Name = Test #1 for ceil
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests ceil with simple positive and negative values. Also tests
-=extreme cases like extremely small values and positive and negative
-=infinity. Makes sure that calling ceil on NaN returns NaN
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_ceilf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_ceilf_test1 coreclrpal)
-
-target_link_libraries(paltest_ceilf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * ceilf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl ceilf_test1_validate(float value, float expected, float variance)
{
float result = ceilf(value);
}
/**
- * validate
+ * ceilf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl ceilf_test1_validate_isnan(float value)
{
float result = ceilf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_ceilf_test1_paltest_ceilf_test1, "c_runtime/ceilf/test1/paltest_ceilf_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate( 0, 0, PAL_EPSILON);
- validate(-0.0f, 0, PAL_EPSILON);
+ ceilf_test1_validate( 0, 0, PAL_EPSILON);
+ ceilf_test1_validate(-0.0f, 0, PAL_EPSILON);
- validate( 1, 1, PAL_EPSILON * 10);
- validate(-1.0f, -1, PAL_EPSILON * 10);
+ ceilf_test1_validate( 1, 1, PAL_EPSILON * 10);
+ ceilf_test1_validate(-1.0f, -1, PAL_EPSILON * 10);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, 1 - tests[i].expected, tests[i].variance);
+ ceilf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ ceilf_test1_validate(-tests[i].value, 1 - tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ ceilf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = ceilf
-Name = Test #1 for ceilf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests ceilf with simple positive and negative values. Also tests
-=extreme cases like extremely small values and positive and negative
-=infinity. Makes sure that calling ceilf on NaN returns NaN
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_cos_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_cos_test1 coreclrpal)
-
-target_link_libraries(paltest_cos_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * cos_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl cos_test1_validate(double value, double expected, double variance)
{
double result = cos(value);
}
/**
- * validate
+ * cos_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl cos_test1_validate_isnan(double value)
{
double result = cos(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_cos_test1_paltest_cos_test1, "c_runtime/cos/test1/paltest_cos_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, tests[i].expected, tests[i].variance);
+ cos_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ cos_test1_validate(-tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ cos_test1_validate_isnan(PAL_NEGINF);
+ cos_test1_validate_isnan(PAL_NAN);
+ cos_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = cos
-Name = Positive Test for cos
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to cos() a series of angle value, checking that
-= each one return the correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_cosf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_cosf_test1 coreclrpal)
-
-target_link_libraries(paltest_cosf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * cosf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl cosf_test1_validate(float value, float expected, float variance)
{
float result = cosf(value);
}
/**
- * validate
+ * cosf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl cosf_test1_validate_isnan(float value)
{
float result = cosf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_cosf_test1_paltest_cosf_test1, "c_runtime/cosf/test1/paltest_cosf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, tests[i].expected, tests[i].variance);
+ cosf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ cosf_test1_validate(-tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ cosf_test1_validate_isnan(PAL_NEGINF);
+ cosf_test1_validate_isnan(PAL_NAN);
+ cosf_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = cosf
-Name = Positive Test for cosf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to cosf() a series of angle value, checking that
-= each one return the correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_cosh_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_cosh_test1 coreclrpal)
-
-target_link_libraries(paltest_cosh_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * cosh_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl cosh_test1_validate(double value, double expected, double variance)
{
double result = cosh(value);
}
/**
- * validate
+ * cosh_test1_validate
*
* test validation function for values returning PAL_NAN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl cosh_test1_validate_isnan(double value)
{
double result = cosh(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_cosh_test1_paltest_cosh_test1, "c_runtime/cosh/test1/paltest_cosh_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, tests[i].expected, tests[i].variance);
+ cosh_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ cosh_test1_validate(-tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ cosh_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = cosh
-Name = Positive Test for cosh
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to cosh() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_coshf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_coshf_test1 coreclrpal)
-
-target_link_libraries(paltest_coshf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * coshf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl coshf_test1_validate(float value, float expected, float variance)
{
float result = coshf(value);
}
/**
- * validate
+ * coshf_test1_validate
*
* test validation function for values returning PAL_NAN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl coshf_test1_validate_isnan(float value)
{
float result = coshf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_coshf_test1_paltest_coshf_test1, "c_runtime/coshf/test1/paltest_coshf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, tests[i].expected, tests[i].variance);
+ coshf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ coshf_test1_validate(-tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ coshf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = coshf
-Name = Positive Test for coshf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to coshf() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_errno_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_errno_test1 coreclrpal)
-
-target_link_libraries(paltest_errno_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_errno_test1_paltest_errno_test1, "c_runtime/errno/test1/paltest_errno_test1")
{
WCHAR overstr[] = {'4','2','9','4','9','6','7','2','9','6',0};
WCHAR *end;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = errno
-Name = Positive Test for errno
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test that errno begins as 0, and sets to ERANGE when that
-= error is forced with wcstoul.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_errno_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_errno_test2 coreclrpal)
-
-target_link_libraries(paltest_errno_test2
- ${COMMON_TEST_LIBRARIES}
-)
This thread function just checks that errno is initially 0 and then sets
it to a new value before returning.
*/
-DWORD PALAPI ThreadFunc( LPVOID lpParam )
+DWORD PALAPI ThreadFunc_errno_test2( LPVOID lpParam )
{
if(errno != 0)
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_errno_test2_paltest_errno_test2, "c_runtime/errno/test2/paltest_errno_test2")
{
DWORD dwThreadId, dwThrdParam = 0;
HANDLE hThread;
errno = 50;
- hThread = CreateThread(NULL, 0, ThreadFunc, &dwThrdParam, 0, &dwThreadId);
+ hThread = CreateThread(NULL, 0, ThreadFunc_errno_test2, &dwThrdParam, 0, &dwThreadId);
if (hThread == NULL)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = errno
-Name = Positive Test for errno
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test that errno is 'per-thread' as noted in the documentation.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_exit_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_exit_test1 coreclrpal)
-
-target_link_libraries(paltest_exit_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_exit_test1_paltest_exit_test1, "c_runtime/exit/test1/paltest_exit_test1")
{
/*
* Initialize the PAL and return FAIL if this fails
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = exit
-Name = Positive Test for exit
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Calls exit, and verifies that it actually stops program execution.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_exit_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_exit_test2 coreclrpal)
-
-target_link_libraries(paltest_exit_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_exit_test2_paltest_exit_test2, "c_runtime/exit/test2/paltest_exit_test2")
{
/*
* Initialize the PAL and return FAIL if this fails
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = exit
-Name = Positive Test for exit
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Calls exit on fail, and verifies that it actually stops program execution,
-= and return 1.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_exp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_exp_test1 coreclrpal)
-
-target_link_libraries(paltest_exp_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * exp_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl exp_test1_validate(double value, double expected, double variance)
{
double result = exp(value);
}
/**
- * validate
+ * exp_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl exp_test1_validate_isnan(double value)
{
double result = exp(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_exp_test1_paltest_exp_test1, "c_runtime/exp/test1/paltest_exp_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ exp_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ exp_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = exp
-Name = Test #1 for exp
-Type = DEFAULT
-EXE1 = test1
-Description
-=Tests exp with a normal set of values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_expf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_expf_test1 coreclrpal)
-
-target_link_libraries(paltest_expf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * expf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl expf_test1_validate(float value, float expected, float variance)
{
float result = expf(value);
}
/**
- * validate
+ * expf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl expf_test1_validate_isnan(float value)
{
float result = expf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_expf_test1_paltest_expf_test1, "c_runtime/expf/test1/paltest_expf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ expf_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ expf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = expf
-Name = Test #1 for expf
-Type = DEFAULT
-EXE1 = test1
-Description
-=Tests expf with a normal set of values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fabs_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fabs_test1 coreclrpal)
-
-target_link_libraries(paltest_fabs_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * fabs_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl fabs_test1_validate(double value, double expected, double variance)
{
double result = fabs(value);
}
/**
- * validate
+ * fabs_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl fabs_test1_validate_isnan(double value)
{
double result = fabs(value);
*
* executable entry point
*/
-INT __cdecl main(INT argc, CHAR **argv)
+PALTEST(c_runtime_fabs_test1_paltest_fabs_test1, "c_runtime/fabs/test1/paltest_fabs_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, tests[i].expected, tests[i].variance);
+ fabs_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ fabs_test1_validate(-tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ fabs_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fabs
-Name = Positive Test for fabs
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to fabs() a series of values, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fabsf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fabsf_test1 coreclrpal)
-
-target_link_libraries(paltest_fabsf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * fabsf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl fabsf_test1_validate(float value, float expected, float variance)
{
float result = fabsf(value);
}
/**
- * validate
+ * fabsf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl fabsf_test1_validate_isnan(float value)
{
float result = fabsf(value);
*
* executable entry point
*/
-INT __cdecl main(INT argc, CHAR **argv)
+PALTEST(c_runtime_fabsf_test1_paltest_fabsf_test1, "c_runtime/fabsf/test1/paltest_fabsf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, tests[i].expected, tests[i].variance);
+ fabsf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ fabsf_test1_validate(-tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ fabsf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fabsf
-Name = Positive Test for fabsf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to fabsf() a series of values, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fclose_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fclose_test1 coreclrpal)
-
-target_link_libraries(paltest_fclose_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fclose_test1_paltest_fclose_test1, "c_runtime/fclose/test1/paltest_fclose_test1")
{
HANDLE hReadPipe = NULL;
HANDLE hWritePipe = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fclose
-Name = Test for fclose
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the fclose function.
-= This test will use fdopen to create a file stream,
-= that will be used to test fclose. fclose will also
-= be passed a closed file handle to make sure it handle
-= it accordingly.
-
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_fclose_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_fclose_test2 coreclrpal)
-
-target_link_libraries(paltest_fclose_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fclose_test2_paltest_fclose_test2, "c_runtime/fclose/test2/paltest_fclose_test2")
{
HANDLE hReadPipe = NULL;
HANDLE hWritePipe = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fclose
-Name = Test for fclose
-TYPE = DEFAULT
-EXE1 = test2
-LANG = cpp
-Description
-= Tests the PAL implementation of the fclose function.
-= fclose will be passed a closed file handle to
-= make sure it handles it accordingly.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_ferror_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_ferror_test1 coreclrpal)
-
-target_link_libraries(paltest_ferror_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_ferror_test1_paltest_ferror_test1, "c_runtime/ferror/test1/paltest_ferror_test1")
{
const char filename[] = "testfile";
char buffer[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = ferror
-Name = Positive Test for ferror
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the ferror function.
-= Open a file, and read some characters. Check that ferror states that
-= no error has occurred. Then close the file pointer. Attempt to read
-= some more. Check ferror now, and it should indicate that an error has
-= occurred.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_ferror_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_ferror_test2 coreclrpal)
-
-target_link_libraries(paltest_ferror_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_ferror_test2_paltest_ferror_test2, "c_runtime/ferror/test2/paltest_ferror_test2")
{
const char filename[] = "testfile";
FILE * fp = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = ferror
-Name = Positive Test for ferror, call write on a readonly file.
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Open a read-only file and attempt to write some data to it.
-= Check to ensure that an ferror occurs.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fflush_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fflush_test1 coreclrpal)
-
-target_link_libraries(paltest_fflush_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fflush_test1_paltest_fflush_test1, "c_runtime/fflush/test1/paltest_fflush_test1")
{
int TheReturn;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fflush
-Name = Positive Test for fflush
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests to see that fflush is working properly. Flushes a couple
-= buffers and checks the return value. Can't figure out a way to test
-= and ensure it is really dropping the buffers, since the system
-= does this automatically most of the time ...
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fgets_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fgets_test1 coreclrpal)
-
-target_link_libraries(paltest_fgets_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fgets_test1_paltest_fgets_test1, "c_runtime/fgets/test1/paltest_fgets_test1")
{
const char outBuf1[] = "This is a test.\n";
const char outBuf2[] = "This is too.";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fgets
-Name = Positive Test for fgets
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Writes a simple file and calls fgets() to get a string shorter than
-= the first line of the file. Verifies that the correct string is
-= returned.
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_fgets_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_fgets_test2 coreclrpal)
-
-target_link_libraries(paltest_fgets_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fgets_test2_paltest_fgets_test2, "c_runtime/fgets/test2/paltest_fgets_test2")
{
const char outBuf1[] = "This is a test.\n";
const char outBuf2[] = "This is too.";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fgets
-Name = Positive Test for fgets
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Calls fgets to read a full line from a file. A maximum length
-= parameter greater than the length of the line is passed.
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_fgets_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_fgets_test3 coreclrpal)
-
-target_link_libraries(paltest_fgets_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fgets_test3_paltest_fgets_test3, "c_runtime/fgets/test3/paltest_fgets_test3")
{
char inBuf[10];
const char filename[] = "testfile.tmp";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fgets
-Name = Positive Test for fgets
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tries to read from an empty file using fgets(), to verify handling of
-= EOF condition.
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_floor_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_floor_test1 coreclrpal)
-
-target_link_libraries(paltest_floor_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * floor_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl floor_test1_validate(double value, double expected, double variance)
{
double result = floor(value);
}
/**
- * validate
+ * floor_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl floor_test1_validate_isnan(double value)
{
double result = floor(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_floor_test1_paltest_floor_test1, "c_runtime/floor/test1/paltest_floor_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate( 0, 0, PAL_EPSILON);
- validate(-0.0, 0, PAL_EPSILON);
+ floor_test1_validate( 0, 0, PAL_EPSILON);
+ floor_test1_validate(-0.0, 0, PAL_EPSILON);
- validate( 1, 1, PAL_EPSILON * 10);
- validate(-1.0, -1, PAL_EPSILON * 10);
+ floor_test1_validate( 1, 1, PAL_EPSILON * 10);
+ floor_test1_validate(-1.0, -1, PAL_EPSILON * 10);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -(tests[i].expected + 1), tests[i].variance);
+ floor_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ floor_test1_validate(-tests[i].value, -(tests[i].expected + 1), tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ floor_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = floor
-Name = Positive Test for floor
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to floor() a series of value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_floorf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_floorf_test1 coreclrpal)
-
-target_link_libraries(paltest_floorf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * floorf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl floorf_test1_validate(float value, float expected, float variance)
{
float result = floorf(value);
}
/**
- * validate
+ * floorf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl floorf_test1_validate_isnan(float value)
{
float result = floorf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_floorf_test1_paltest_floorf_test1, "c_runtime/floorf/test1/paltest_floorf_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate( 0, 0, PAL_EPSILON);
- validate(-0.0f, 0, PAL_EPSILON);
+ floorf_test1_validate( 0, 0, PAL_EPSILON);
+ floorf_test1_validate(-0.0f, 0, PAL_EPSILON);
- validate( 1, 1, PAL_EPSILON * 10);
- validate(-1.0f, -1, PAL_EPSILON * 10);
+ floorf_test1_validate( 1, 1, PAL_EPSILON * 10);
+ floorf_test1_validate(-1.0f, -1, PAL_EPSILON * 10);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -(tests[i].expected + 1), tests[i].variance);
+ floorf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ floorf_test1_validate(-tests[i].value, -(tests[i].expected + 1), tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ floorf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = floorf
-Name = Positive Test for floorf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to floorf() a series of value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fma_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fma_test1 coreclrpal)
-
-target_link_libraries(paltest_fma_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * fma_test1_validate
*
* test validation function
*/
-void __cdecl validate(double x, double y, double z, double expected, double variance)
+void __cdecl fma_test1_validate(double x, double y, double z, double expected, double variance)
{
double result = fma(x, y, z);
}
/**
- * validate
+ * fma_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double x, double y, double z)
+void __cdecl fma_test1_validate_isnan(double x, double y, double z)
{
double result = fma(x, y, z);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fma_test1_paltest_fma_test1, "c_runtime/fma/test1/paltest_fma_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].x, tests[i].y, tests[i].z, tests[i].expected, tests[i].variance);
+ fma_test1_validate(tests[i].x, tests[i].y, tests[i].z, tests[i].expected, tests[i].variance);
}
// Returns NaN if x or y is infinite, the other is zero, and z is NaN
- validate_isnan(PAL_NEGINF, 0, PAL_NAN);
- validate_isnan(PAL_POSINF, 0, PAL_NAN);
- validate_isnan(0, PAL_NEGINF, PAL_NAN);
- validate_isnan(0, PAL_POSINF, PAL_NAN);
+ fma_test1_validate_isnan(PAL_NEGINF, 0, PAL_NAN);
+ fma_test1_validate_isnan(PAL_POSINF, 0, PAL_NAN);
+ fma_test1_validate_isnan(0, PAL_NEGINF, PAL_NAN);
+ fma_test1_validate_isnan(0, PAL_POSINF, PAL_NAN);
// Returns NaN if x or y is infinite, the other is zero, and z is not-NaN
- validate_isnan(PAL_POSINF, 0, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, 0, PAL_NEGINF);
- validate_isnan(0, PAL_POSINF, PAL_NEGINF);
- validate_isnan(0, PAL_NEGINF, PAL_NEGINF);
+ fma_test1_validate_isnan(PAL_POSINF, 0, PAL_NEGINF);
+ fma_test1_validate_isnan(PAL_NEGINF, 0, PAL_NEGINF);
+ fma_test1_validate_isnan(0, PAL_POSINF, PAL_NEGINF);
+ fma_test1_validate_isnan(0, PAL_NEGINF, PAL_NEGINF);
- validate_isnan(PAL_POSINF, 0, 0);
- validate_isnan(PAL_NEGINF, 0, 0);
- validate_isnan(0, PAL_POSINF, 0);
- validate_isnan(0, PAL_NEGINF, 0);
+ fma_test1_validate_isnan(PAL_POSINF, 0, 0);
+ fma_test1_validate_isnan(PAL_NEGINF, 0, 0);
+ fma_test1_validate_isnan(0, PAL_POSINF, 0);
+ fma_test1_validate_isnan(0, PAL_NEGINF, 0);
- validate_isnan(PAL_POSINF, 0, PAL_POSINF);
- validate_isnan(PAL_NEGINF, 0, PAL_POSINF);
- validate_isnan(0, PAL_POSINF, PAL_POSINF);
- validate_isnan(0, PAL_NEGINF, PAL_POSINF);
+ fma_test1_validate_isnan(PAL_POSINF, 0, PAL_POSINF);
+ fma_test1_validate_isnan(PAL_NEGINF, 0, PAL_POSINF);
+ fma_test1_validate_isnan(0, PAL_POSINF, PAL_POSINF);
+ fma_test1_validate_isnan(0, PAL_NEGINF, PAL_POSINF);
// Returns NaN if (x * y) is infinite, and z is an infinite of the opposite sign
- validate_isnan(PAL_POSINF, PAL_POSINF, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, PAL_NEGINF, PAL_NEGINF);
- validate_isnan(PAL_POSINF, PAL_NEGINF, PAL_POSINF);
- validate_isnan(PAL_NEGINF, PAL_POSINF, PAL_POSINF);
-
- validate_isnan(PAL_POSINF, 1, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, 1, PAL_POSINF);
- validate_isnan(1, PAL_POSINF, PAL_NEGINF);
- validate_isnan(1, PAL_NEGINF, PAL_POSINF);
+ fma_test1_validate_isnan(PAL_POSINF, PAL_POSINF, PAL_NEGINF);
+ fma_test1_validate_isnan(PAL_NEGINF, PAL_NEGINF, PAL_NEGINF);
+ fma_test1_validate_isnan(PAL_POSINF, PAL_NEGINF, PAL_POSINF);
+ fma_test1_validate_isnan(PAL_NEGINF, PAL_POSINF, PAL_POSINF);
+
+ fma_test1_validate_isnan(PAL_POSINF, 1, PAL_NEGINF);
+ fma_test1_validate_isnan(PAL_NEGINF, 1, PAL_POSINF);
+ fma_test1_validate_isnan(1, PAL_POSINF, PAL_NEGINF);
+ fma_test1_validate_isnan(1, PAL_NEGINF, PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fma
-Name = Call fma with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the fma function with various num/exponent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_fmaf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fmaf_test1 coreclrpal)
-
-target_link_libraries(paltest_fmaf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * fmaf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float x, float y, float z, float expected, float variance)
+void __cdecl fmaf_test1_validate(float x, float y, float z, float expected, float variance)
{
float result = fmaf(x, y, z);
}
/**
- * validate
+ * fmaf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float x, float y, float z)
+void __cdecl fmaf_test1_validate_isnan(float x, float y, float z)
{
float result = fmaf(x, y, z);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fmaf_test1_paltest_fmaf_test1, "c_runtime/fmaf/test1/paltest_fmaf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].x, tests[i].y, tests[i].z, tests[i].expected, tests[i].variance);
+ fmaf_test1_validate(tests[i].x, tests[i].y, tests[i].z, tests[i].expected, tests[i].variance);
}
// Returns NaN if x or y is infinite, the other is zero, and z is NaN
- validate_isnan(PAL_NEGINF, 0, PAL_NAN);
- validate_isnan(PAL_POSINF, 0, PAL_NAN);
- validate_isnan(0, PAL_NEGINF, PAL_NAN);
- validate_isnan(0, PAL_POSINF, PAL_NAN);
+ fmaf_test1_validate_isnan(PAL_NEGINF, 0, PAL_NAN);
+ fmaf_test1_validate_isnan(PAL_POSINF, 0, PAL_NAN);
+ fmaf_test1_validate_isnan(0, PAL_NEGINF, PAL_NAN);
+ fmaf_test1_validate_isnan(0, PAL_POSINF, PAL_NAN);
// Returns NaN if x or y is infinite, the other is zero, and z is not-NaN
- validate_isnan(PAL_POSINF, 0, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, 0, PAL_NEGINF);
- validate_isnan(0, PAL_POSINF, PAL_NEGINF);
- validate_isnan(0, PAL_NEGINF, PAL_NEGINF);
+ fmaf_test1_validate_isnan(PAL_POSINF, 0, PAL_NEGINF);
+ fmaf_test1_validate_isnan(PAL_NEGINF, 0, PAL_NEGINF);
+ fmaf_test1_validate_isnan(0, PAL_POSINF, PAL_NEGINF);
+ fmaf_test1_validate_isnan(0, PAL_NEGINF, PAL_NEGINF);
- validate_isnan(PAL_POSINF, 0, 0);
- validate_isnan(PAL_NEGINF, 0, 0);
- validate_isnan(0, PAL_POSINF, 0);
- validate_isnan(0, PAL_NEGINF, 0);
+ fmaf_test1_validate_isnan(PAL_POSINF, 0, 0);
+ fmaf_test1_validate_isnan(PAL_NEGINF, 0, 0);
+ fmaf_test1_validate_isnan(0, PAL_POSINF, 0);
+ fmaf_test1_validate_isnan(0, PAL_NEGINF, 0);
- validate_isnan(PAL_POSINF, 0, PAL_POSINF);
- validate_isnan(PAL_NEGINF, 0, PAL_POSINF);
- validate_isnan(0, PAL_POSINF, PAL_POSINF);
- validate_isnan(0, PAL_NEGINF, PAL_POSINF);
+ fmaf_test1_validate_isnan(PAL_POSINF, 0, PAL_POSINF);
+ fmaf_test1_validate_isnan(PAL_NEGINF, 0, PAL_POSINF);
+ fmaf_test1_validate_isnan(0, PAL_POSINF, PAL_POSINF);
+ fmaf_test1_validate_isnan(0, PAL_NEGINF, PAL_POSINF);
// Returns NaN if (x * y) is infinite, and z is an infinite of the opposite sign
- validate_isnan(PAL_POSINF, PAL_POSINF, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, PAL_NEGINF, PAL_NEGINF);
- validate_isnan(PAL_POSINF, PAL_NEGINF, PAL_POSINF);
- validate_isnan(PAL_NEGINF, PAL_POSINF, PAL_POSINF);
-
- validate_isnan(PAL_POSINF, 1, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, 1, PAL_POSINF);
- validate_isnan(1, PAL_POSINF, PAL_NEGINF);
- validate_isnan(1, PAL_NEGINF, PAL_POSINF);
+ fmaf_test1_validate_isnan(PAL_POSINF, PAL_POSINF, PAL_NEGINF);
+ fmaf_test1_validate_isnan(PAL_NEGINF, PAL_NEGINF, PAL_NEGINF);
+ fmaf_test1_validate_isnan(PAL_POSINF, PAL_NEGINF, PAL_POSINF);
+ fmaf_test1_validate_isnan(PAL_NEGINF, PAL_POSINF, PAL_POSINF);
+
+ fmaf_test1_validate_isnan(PAL_POSINF, 1, PAL_NEGINF);
+ fmaf_test1_validate_isnan(PAL_NEGINF, 1, PAL_POSINF);
+ fmaf_test1_validate_isnan(1, PAL_POSINF, PAL_NEGINF);
+ fmaf_test1_validate_isnan(1, PAL_NEGINF, PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fmaf
-Name = Call fmaf with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the fmaf function with various num/expfonent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fmod_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fmod_test1 coreclrpal)
-
-target_link_libraries(paltest_fmod_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * fmod_test1_validate
*
* test validation function
*/
-void __cdecl validate(double numerator, double denominator, double expected, double variance)
+void __cdecl fmod_test1_validate(double numerator, double denominator, double expected, double variance)
{
double result = fmod(numerator, denominator);
}
/**
- * validate
+ * fmod_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double numerator, double denominator)
+void __cdecl fmod_test1_validate_isnan(double numerator, double denominator)
{
double result = fmod(numerator, denominator);
*
* executable entry point
*/
-INT __cdecl main(INT argc, CHAR **argv)
+PALTEST(c_runtime_fmod_test1_paltest_fmod_test1, "c_runtime/fmod/test1/paltest_fmod_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].numerator, tests[i].denominator, tests[i].expected, tests[i].variance);
- validate(-tests[i].numerator, tests[i].denominator, -tests[i].expected, tests[i].variance);
- validate( tests[i].numerator, -tests[i].denominator, tests[i].expected, tests[i].variance);
- validate(-tests[i].numerator, -tests[i].denominator, -tests[i].expected, tests[i].variance);
+ fmod_test1_validate( tests[i].numerator, tests[i].denominator, tests[i].expected, tests[i].variance);
+ fmod_test1_validate(-tests[i].numerator, tests[i].denominator, -tests[i].expected, tests[i].variance);
+ fmod_test1_validate( tests[i].numerator, -tests[i].denominator, tests[i].expected, tests[i].variance);
+ fmod_test1_validate(-tests[i].numerator, -tests[i].denominator, -tests[i].expected, tests[i].variance);
}
- validate_isnan( 0, 0);
- validate_isnan(-0.0, 0);
- validate_isnan( 0, -0.0);
- validate_isnan(-0.0, -0.0);
+ fmod_test1_validate_isnan( 0, 0);
+ fmod_test1_validate_isnan(-0.0, 0);
+ fmod_test1_validate_isnan( 0, -0.0);
+ fmod_test1_validate_isnan(-0.0, -0.0);
- validate_isnan( 1, 0);
- validate_isnan(-1.0, 0);
- validate_isnan( 1, -0.0);
- validate_isnan(-1.0, -0.0);
+ fmod_test1_validate_isnan( 1, 0);
+ fmod_test1_validate_isnan(-1.0, 0);
+ fmod_test1_validate_isnan( 1, -0.0);
+ fmod_test1_validate_isnan(-1.0, -0.0);
- validate_isnan(PAL_POSINF, PAL_POSINF);
- validate_isnan(PAL_NEGINF, PAL_POSINF);
- validate_isnan(PAL_POSINF, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, PAL_NEGINF);
+ fmod_test1_validate_isnan(PAL_POSINF, PAL_POSINF);
+ fmod_test1_validate_isnan(PAL_NEGINF, PAL_POSINF);
+ fmod_test1_validate_isnan(PAL_POSINF, PAL_NEGINF);
+ fmod_test1_validate_isnan(PAL_NEGINF, PAL_NEGINF);
- validate_isnan(PAL_POSINF, 0);
- validate_isnan(PAL_NEGINF, 0);
- validate_isnan(PAL_POSINF, -0.0);
- validate_isnan(PAL_NEGINF, -0.0);
+ fmod_test1_validate_isnan(PAL_POSINF, 0);
+ fmod_test1_validate_isnan(PAL_NEGINF, 0);
+ fmod_test1_validate_isnan(PAL_POSINF, -0.0);
+ fmod_test1_validate_isnan(PAL_NEGINF, -0.0);
- validate_isnan(PAL_POSINF, 1);
- validate_isnan(PAL_NEGINF, 1);
- validate_isnan(PAL_POSINF, -1.0);
- validate_isnan(PAL_NEGINF, -1.0);
+ fmod_test1_validate_isnan(PAL_POSINF, 1);
+ fmod_test1_validate_isnan(PAL_NEGINF, 1);
+ fmod_test1_validate_isnan(PAL_POSINF, -1.0);
+ fmod_test1_validate_isnan(PAL_NEGINF, -1.0);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fmod
-Name = Positive Test for fmod
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to fmod() a series of values, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fmodf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fmodf_test1 coreclrpal)
-
-target_link_libraries(paltest_fmodf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * fmodf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float numerator, float denominator, float expected, float variance)
+void __cdecl fmodf_test1_validate(float numerator, float denominator, float expected, float variance)
{
float result = fmodf(numerator, denominator);
}
/**
- * validate
+ * fmodf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float numerator, float denominator)
+void __cdecl fmodf_test1_validate_isnan(float numerator, float denominator)
{
float result = fmodf(numerator, denominator);
*
* executable entry point
*/
-INT __cdecl main(INT argc, CHAR **argv)
+PALTEST(c_runtime_fmodf_test1_paltest_fmodf_test1, "c_runtime/fmodf/test1/paltest_fmodf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].numerator, tests[i].denominator, tests[i].expected, tests[i].variance);
- validate(-tests[i].numerator, tests[i].denominator, -tests[i].expected, tests[i].variance);
- validate( tests[i].numerator, -tests[i].denominator, tests[i].expected, tests[i].variance);
- validate(-tests[i].numerator, -tests[i].denominator, -tests[i].expected, tests[i].variance);
+ fmodf_test1_validate( tests[i].numerator, tests[i].denominator, tests[i].expected, tests[i].variance);
+ fmodf_test1_validate(-tests[i].numerator, tests[i].denominator, -tests[i].expected, tests[i].variance);
+ fmodf_test1_validate( tests[i].numerator, -tests[i].denominator, tests[i].expected, tests[i].variance);
+ fmodf_test1_validate(-tests[i].numerator, -tests[i].denominator, -tests[i].expected, tests[i].variance);
}
- validate_isnan( 0, 0);
- validate_isnan(-0.0f, 0);
- validate_isnan( 0, -0.0f);
- validate_isnan(-0.0f, -0.0f);
+ fmodf_test1_validate_isnan( 0, 0);
+ fmodf_test1_validate_isnan(-0.0f, 0);
+ fmodf_test1_validate_isnan( 0, -0.0f);
+ fmodf_test1_validate_isnan(-0.0f, -0.0f);
- validate_isnan( 1, 0);
- validate_isnan(-1, 0);
- validate_isnan( 1, -0.0f);
- validate_isnan(-1, -0.0f);
+ fmodf_test1_validate_isnan( 1, 0);
+ fmodf_test1_validate_isnan(-1, 0);
+ fmodf_test1_validate_isnan( 1, -0.0f);
+ fmodf_test1_validate_isnan(-1, -0.0f);
- validate_isnan(PAL_POSINF, PAL_POSINF);
- validate_isnan(PAL_NEGINF, PAL_POSINF);
- validate_isnan(PAL_POSINF, PAL_NEGINF);
- validate_isnan(PAL_NEGINF, PAL_NEGINF);
+ fmodf_test1_validate_isnan(PAL_POSINF, PAL_POSINF);
+ fmodf_test1_validate_isnan(PAL_NEGINF, PAL_POSINF);
+ fmodf_test1_validate_isnan(PAL_POSINF, PAL_NEGINF);
+ fmodf_test1_validate_isnan(PAL_NEGINF, PAL_NEGINF);
- validate_isnan(PAL_POSINF, 0);
- validate_isnan(PAL_NEGINF, 0);
- validate_isnan(PAL_POSINF, -0.0f);
- validate_isnan(PAL_NEGINF, -0.0f);
+ fmodf_test1_validate_isnan(PAL_POSINF, 0);
+ fmodf_test1_validate_isnan(PAL_NEGINF, 0);
+ fmodf_test1_validate_isnan(PAL_POSINF, -0.0f);
+ fmodf_test1_validate_isnan(PAL_NEGINF, -0.0f);
- validate_isnan(PAL_POSINF, 1);
- validate_isnan(PAL_NEGINF, 1);
- validate_isnan(PAL_POSINF, -1);
- validate_isnan(PAL_NEGINF, -1);
+ fmodf_test1_validate_isnan(PAL_POSINF, 1);
+ fmodf_test1_validate_isnan(PAL_NEGINF, 1);
+ fmodf_test1_validate_isnan(PAL_POSINF, -1);
+ fmodf_test1_validate_isnan(PAL_NEGINF, -1);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fmodf
-Name = Positive Test for fmodf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to fmodf() a series of values, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fopen_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fopen_test1 coreclrpal)
-
-target_link_libraries(paltest_fopen_test1
- ${COMMON_TEST_LIBRARIES}
-)
char mode[20];
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fopen_test1_paltest_fopen_test1, "c_runtime/fopen/test1/paltest_fopen_test1")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fopen
-Name = Positive Test for fopen
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= This test simply attempts to open a number of files with different
-= modes. It checks to ensure a valid file pointer is returned. It
-= doesn't do any checking to ensure the mode is really what it claims.
-= Checks for returned value when attempts to open a directory.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_fopen_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_fopen_test2 coreclrpal)
-
-target_link_libraries(paltest_fopen_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fopen_test2_paltest_fopen_test2, "c_runtime/fopen/test2/paltest_fopen_test2")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fopen
-Name = Positive Test for fopen
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure that you can write to a 'w' mode file. And that you can't
-= read from a 'w' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_fopen_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_fopen_test3 coreclrpal)
-
-target_link_libraries(paltest_fopen_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fopen_test3_paltest_fopen_test3, "c_runtime/fopen/test3/paltest_fopen_test3")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fopen
-Name = Positive Test for fopen
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Test to ensure that you can write to a 'w+' mode file. And that you can
-= read from a 'w+' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_fopen_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_fopen_test4 coreclrpal)
-
-target_link_libraries(paltest_fopen_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fopen_test4_paltest_fopen_test4, "c_runtime/fopen/test4/paltest_fopen_test4")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fopen
-Name = Positive Test for fopen
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test to ensure that you can't write to a 'r' mode file. And that you can
-= read from a 'r' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_fopen_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_fopen_test5 coreclrpal)
-
-target_link_libraries(paltest_fopen_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fopen_test5_paltest_fopen_test5, "c_runtime/fopen/test5/paltest_fopen_test5")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fopen
-Name = Positive Test for fopen
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Test to ensure that you can write to a 'r+' mode file. And that you can
-= read from a 'r+' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_fopen_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_fopen_test6 coreclrpal)
-
-target_link_libraries(paltest_fopen_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fopen_test6_paltest_fopen_test6, "c_runtime/fopen/test6/paltest_fopen_test6")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fopen
-Name = Positive Test for fopen
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Test to ensure that you can write to a 'a' mode file. And that you can't
-= read from a 'a' mode file.
-
-
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_fopen_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_fopen_test7 coreclrpal)
-
-target_link_libraries(paltest_fopen_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fopen_test7_paltest_fopen_test7, "c_runtime/fopen/test7/paltest_fopen_test7")
{
FILE *fp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fopen
-Name = Positive Test for fopen
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Test to ensure that you can write to a 'a+' mode file. And that you can
-= read from a 'a+' mode file.
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __FPRINTF_H__
#define __FPRINTF_H__
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_fprintf(const char *formatstr, char* param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoStrTest DoStrTest_fprintf
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_fprintf(const char *formatstr, WCHAR* param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoWStrTest DoWStrTest_fprintf
-
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_fprintf(const char *formatstr, char param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoCharTest DoCharTest_fprintf
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_fprintf(const char *formatstr, WCHAR param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoWCharTest DoWCharTest_fprintf
-void DoNumTest(const char *formatstr, int value, const char *checkstr)
+inline void DoNumTest_fprintf(const char *formatstr, int value, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoNumTest DoNumTest_fprintf
-void DoI64Test(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1, const char *checkstr2)
+inline void DoI64Test_fprintf(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1, const char *checkstr2)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoI64Test DoI64Test_fprintf
-void DoDoubleTest(const char *formatstr, double value, const char *checkstr1, const char *checkstr2)
+inline void DoDoubleTest_fprintf(const char *formatstr, double value, const char *checkstr1, const char *checkstr2)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoDoubleTest DoDoubleTest_fprintf
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fgets, fseek and fclose.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test1_paltest_fprintf_test1, "c_runtime/fprintf/test1/paltest_fprintf_test1")
{
FILE *fp;
char testfile[] = "testfile.txt";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= A single, basic, test case with no formatting.
-= Test modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_fprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test10_paltest_fprintf_test10, "c_runtime/fprintf/test10/paltest_fprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests the octal specifier (%o).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_fprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test11_paltest_fprintf_test11, "c_runtime/fprintf/test11/paltest_fprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Test the unsigned int specifier (%u).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_fprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test12_paltest_fprintf_test12, "c_runtime/fprintf/test12/paltest_fprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests the (lowercase) hexadecimal specifier (%x).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_fprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test13_paltest_fprintf_test13, "c_runtime/fprintf/test13/paltest_fprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests the (uppercase) hexadecimal specifier (%X).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_fprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test14_paltest_fprintf_test14, "c_runtime/fprintf/test14/paltest_fprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests the lowercase exponential
-= notation double specifier (%e).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_fprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test15_paltest_fprintf_test15, "c_runtime/fprintf/test15/paltest_fprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests the uppercase exponential
-= notation double specifier (%E).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_fprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test16_paltest_fprintf_test16, "c_runtime/fprintf/test16/paltest_fprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests the decimal notation double specifier (%f).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_fprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test17_paltest_fprintf_test17, "c_runtime/fprintf/test17/paltest_fprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests the lowercase shorthand notation double specifier (%g).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_fprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test18_paltest_fprintf_test18, "c_runtime/fprintf/test18/paltest_fprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests the uppercase shorthand notation double specifier (%G).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_fprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test19_paltest_fprintf_test19, "c_runtime/fprintf/test19/paltest_fprintf_test19")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests the variable length precision argument.
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_fprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test2_paltest_fprintf_test2, "c_runtime/fprintf/test2/paltest_fprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the string specifier (%s).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_fprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test3_paltest_fprintf_test3, "c_runtime/fprintf/test3/paltest_fprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the wide string specifier (%S).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_fprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test4_paltest_fprintf_test4, "c_runtime/fprintf/test4/paltest_fprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests the pointer specifier (%p).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_fprintf_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test5 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test5
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test5_paltest_fprintf_test5, "c_runtime/fprintf/test5/paltest_fprintf_test5")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests the count specifier (%n).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_fprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test6_paltest_fprintf_test6, "c_runtime/fprintf/test6/paltest_fprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests the char specifier (%c).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_fprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test7_paltest_fprintf_test7, "c_runtime/fprintf/test7/paltest_fprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests the wide char specifier (%C).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_fprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test8_paltest_fprintf_test8, "c_runtime/fprintf/test8/paltest_fprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests the decimal specifier (%d).
-= This test is modeled after the fprintf series.
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_fprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_fprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_fprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fprintf_test9_paltest_fprintf_test9, "c_runtime/fprintf/test9/paltest_fprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fprintf
-Name = Positive Test for fprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests the integer specifier (%i).
-= This test is modeled after the fprintf series.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fputs_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fputs_test1 coreclrpal)
-
-target_link_libraries(paltest_fputs_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fputs_test1_paltest_fputs_test1, "c_runtime/fputs/test1/paltest_fputs_test1")
{
FILE* TheFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fputs
-Name = Check that fputs writes correctly to a valid stream
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call fputs twice and write two strings to a file. Then
-= call fread on the file and check that the data which was written is what
-= we expect it to be.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_fputs_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_fputs_test2 coreclrpal)
-
-target_link_libraries(paltest_fputs_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fputs_test2_paltest_fputs_test2, "c_runtime/fputs/test2/paltest_fputs_test2")
{
FILE* TheFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fputs
-Name = Check that fputs returns EOF when called on closed/readonly streams
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Check to see that fputs fails and returns EOF when called on
-= a closed file stream and a read-only file stream.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fread_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fread_test1 coreclrpal)
-
-target_link_libraries(paltest_fread_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fread_test1_paltest_fread_test1, "c_runtime/fread/test1/paltest_fread_test1")
{
const char filename[] = "testfile";
char buffer[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fread
-Name = Positive Test for fread
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the fread function.
-= Open a file in READ mode, and then try to read all the characters,
-= more than all the characters, 0 characters and 0 sized characters and
-= check that the return values are correct.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_fread_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_fread_test2 coreclrpal)
-
-target_link_libraries(paltest_fread_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fread_test2_paltest_fread_test2, "c_runtime/fread/test2/paltest_fread_test2")
{
const char filename[] = "testfile";
char buffer[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fread
-Name = Positive Test for fread
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the fread function.
-= Open a file in READ mode, and then try to read all
-= the characters, more than all the characters,
-= 0 characters and 0 sized characters and check that
-= the strings read in are correct.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_fread_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_fread_test3 coreclrpal)
-
-target_link_libraries(paltest_fread_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fread_test3_paltest_fread_test3, "c_runtime/fread/test3/paltest_fread_test3")
{
const char filename[] = "testfile";
char buffer[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fread
-Name = Positive Test for fread
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the fread function.
-= Open a file in READ mode, then try to read from the file with
-= different 'size' params. Check to ensure the return values and
-= the text in the buffer is correct
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_free_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_free_test1 coreclrpal)
-
-target_link_libraries(paltest_free_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_free_test1_paltest_free_test1, "c_runtime/free/test1/paltest_free_test1")
{
char *testA;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = free
-Name = Positive Test for free
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Repeatedly allocates and frees a chunk of memory, to verify that free
-= is really returning memory to the heap
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fseek_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fseek_test1 coreclrpal)
-
-target_link_libraries(paltest_fseek_test1
- ${COMMON_TEST_LIBRARIES}
-)
return result;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fseek_test1_paltest_fseek_test1, "c_runtime/fseek/test1/paltest_fseek_test1")
{
char outBuf[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char inBuf[20];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fseek
-Name = Positive Test for fseek
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call seek to move a file pointer to the start of a file, a position
-= offset from the start, a position offset from the current position, and
-= a position offset from the end of the file. Check that the file
-= pointer is at the correct position after each seek.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- ftell.cpp
-)
-
-add_executable(paltest_ftell_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_ftell_test1 coreclrpal)
-
-target_link_libraries(paltest_ftell_test1
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_ftell_test1_paltest_ftell_test1, "c_runtime/ftell/test1/paltest_ftell_test1")
{
const char szFileName[] = {"testfile.txt"};
long lPos = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = c_runtime
-Function = ftell
-Name = test for ftell (test 1)
-Type = DEFAULT
-EXE1 = ftell
-Description
-= Use fseek and a static list of distances to move, direction
-= to move and expected results to test the ftell function. A typical
-= test will move the file pointer with fseek then call ftell. The
-= results from ftell will then be compared to the expected result to
-= determine whether the test passed or failed.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __fwprintf_H__
#define __fwprintf_H__
-void DoStrTest(const WCHAR *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_fwprintf(const WCHAR *formatstr, char* param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoStrTest DoStrTest_fwprintf
-void DoWStrTest(const WCHAR *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_fwprintf(const WCHAR *formatstr, WCHAR* param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoWStrTest DoWStrTest_fwprintf
-
-void DoPointerTest(const WCHAR *formatstr, void* param, char* paramstr,
+inline void DoPointerTest_fwprintf(const WCHAR *formatstr, void* param, char* paramstr,
const char *checkstr1, const char *checkstr2)
{
FILE *fp;
Fail("ERROR: fclose failed to close \"testfile.txt\"\n");
}
}
+#define DoPointerTest DoPointerTest_fwprintf
-
-void DoCountTest(const WCHAR *formatstr, int param, const char *checkstr)
+inline void DoCountTest_fwprintf(const WCHAR *formatstr, int param, const char *checkstr)
{
FILE *fp;
char buf[512] = { 0 };
Fail("ERROR: fclose failed to close \"testfile.txt\"\n");
}
}
+#define DoCountTest DoCountTest_fwprintf
-void DoShortCountTest(const WCHAR *formatstr, int param, const char *checkstr)
+inline void DoShortCountTest_fwprintf(const WCHAR *formatstr, int param, const char *checkstr)
{
FILE *fp;
char buf[512] = { 0 };
Fail("ERROR: fclose failed to close \"testfile.txt\"\n");
}
}
+#define DoShortCountTest DoShortCountTest_fwprintf
-
-void DoCharTest(const WCHAR *formatstr, char param, const char *checkstr)
+inline void DoCharTest_fwprintf(const WCHAR *formatstr, char param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoCharTest DoCharTest_fwprintf
-void DoWCharTest(const WCHAR *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_fwprintf(const WCHAR *formatstr, WCHAR param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoWCharTest DoWCharTest_fwprintf
-void DoNumTest(const WCHAR *formatstr, int value, const char *checkstr)
+inline void DoNumTest_fwprintf(const WCHAR *formatstr, int value, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoNumTest DoNumTest_fwprintf
-void DoI64Test(const WCHAR *formatstr, INT64 value, char *valuestr, const char *checkstr1,
+inline void DoI64Test_fwprintf(const WCHAR *formatstr, INT64 value, char *valuestr, const char *checkstr1,
const char *checkstr2)
{
FILE *fp;
}
fclose(fp);
}
+#define DoI64Test DoI64Test_fwprintf
-void DoDoubleTest(const WCHAR *formatstr, double value, const char *checkstr1,
+inline void DoDoubleTest_fwprintf(const WCHAR *formatstr, double value, const char *checkstr1,
const char *checkstr2)
{
FILE *fp;
}
fclose(fp);
}
+#define DoDoubleTest DoDoubleTest_fwprintf
-
-void DoArgumentPrecTest(const WCHAR *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_fwprintf(const WCHAR *formatstr, int precision, void *param,
char *paramstr, const char *checkstr1, const char *checkstr2)
{
FILE *fp;
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_fwprintf
-void DoArgumentPrecDoubleTest(const WCHAR *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_fwprintf(const WCHAR *formatstr, int precision, double param,
const char *checkstr1, const char *checkstr2)
{
FILE *fp;
}
}
-
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_fwprintf
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fwprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fgets, fseek and fclose.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test1_paltest_fwprintf_test1, "c_runtime/fwprintf/test1/paltest_fwprintf_test1")
{
FILE *fp;
char testfile[] = "testfile.txt";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= A single, basic, test case with no formatting.
-= Test modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_fwprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test10_paltest_fwprintf_test10, "c_runtime/fwprintf/test10/paltest_fwprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests the octal specifier (%o).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_fwprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test11_paltest_fwprintf_test11, "c_runtime/fwprintf/test11/paltest_fwprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Test the unsigned int specifier (%u).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_fwprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test12_paltest_fwprintf_test12, "c_runtime/fwprintf/test12/paltest_fwprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests the (lowercase) hexadecimal specifier (%x).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_fwprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test13_paltest_fwprintf_test13, "c_runtime/fwprintf/test13/paltest_fwprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests the (uppercase) hexadecimal specifier (%X).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_fwprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test14_paltest_fwprintf_test14, "c_runtime/fwprintf/test14/paltest_fwprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests the lowercase exponential
-= notation double specifier (%e).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_fwprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test15_paltest_fwprintf_test15, "c_runtime/fwprintf/test15/paltest_fwprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests the uppercase exponential
-= notation double specifier (%E).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_fwprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test16_paltest_fwprintf_test16, "c_runtime/fwprintf/test16/paltest_fwprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests the decimal notation double specifier (%f).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_fwprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test17_paltest_fwprintf_test17, "c_runtime/fwprintf/test17/paltest_fwprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests the lowercase shorthand notation double specifier (%g).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_fwprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test18_paltest_fwprintf_test18, "c_runtime/fwprintf/test18/paltest_fwprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests the uppercase shorthand notation double specifier (%G).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_fwprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test19_paltest_fwprintf_test19, "c_runtime/fwprintf/test19/paltest_fwprintf_test19")
{
int n = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests the variable length precision argument.
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_fwprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test2_paltest_fwprintf_test2, "c_runtime/fwprintf/test2/paltest_fwprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the string specifier (%s).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_fwprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test3_paltest_fwprintf_test3, "c_runtime/fwprintf/test3/paltest_fwprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the wide string specifier (%S).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_fwprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test4_paltest_fwprintf_test4, "c_runtime/fwprintf/test4/paltest_fwprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests the pointer specifier (%p).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_fwprintf_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test5 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test5
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test5_paltest_fwprintf_test5, "c_runtime/fwprintf/test5/paltest_fwprintf_test5")
{
WCHAR *longStr;
char *longResult =
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests the count specifier (%n).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_fwprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test6_paltest_fwprintf_test6, "c_runtime/fwprintf/test6/paltest_fwprintf_test6")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests the char specifier (%c).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_fwprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test7_paltest_fwprintf_test7, "c_runtime/fwprintf/test7/paltest_fwprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests the wide char specifier (%C).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_fwprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test8_paltest_fwprintf_test8, "c_runtime/fwprintf/test8/paltest_fwprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests the decimal specifier (%d).
-= This test is modeled after the sprintf series.
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_fwprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_fwprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp, strlen, fopen, fseek and fgets.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_fwprintf_test9_paltest_fwprintf_test9, "c_runtime/fwprintf/test9/paltest_fwprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwprintf
-Name = Positive Test for fwprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests the integer specifier (%i).
-= This test is modeled after the sprintf series.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_fwrite_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_fwrite_test1 coreclrpal)
-
-target_link_libraries(paltest_fwrite_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_fwrite_test1_paltest_fwrite_test1, "c_runtime/fwrite/test1/paltest_fwrite_test1")
{
const char filename[] = "testfile.tmp";
const char outBuffer[] = "This is a test.";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = fwrite
-Name = Positive Test for fwrite
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Write a short string to a file and check that it was written properly.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_getenv_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenv_test1 coreclrpal)
-
-target_link_libraries(paltest_getenv_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_getenv_test1_paltest_getenv_test1, "c_runtime/getenv/test1/paltest_getenv_test1")
{
const char* SetVariable = "PalTestingEnvironmentVariable=The value";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = getenv
-Name = Test retrieval of variables correctly, and failure if they don't exist
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Create an environment variable and then use getenv to get
-= a pointer to it. Check that the pointer is valid and that the string
-= is what we expected. Also check that searching for a non-existent
-= variable will cause getenv to return NULL. Also check that changing
-= the case (upper or lower) of a variable does not effect functionality.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_getenv_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenv_test2 coreclrpal)
-
-target_link_libraries(paltest_getenv_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_getenv_test2_paltest_getenv_test2, "c_runtime/getenv/test2/paltest_getenv_test2")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = getenv
-Name = Test retrieval of variables differing only by case.
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Check that environment variables differing only by their
-= case are interpreted as separate variables by the BSD Operationg
-= System.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_getenv_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenv_test3 coreclrpal)
-
-target_link_libraries(paltest_getenv_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_getenv_test3_paltest_getenv_test3, "c_runtime/getenv/test3/paltest_getenv_test3")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = getenv
-Name = Test retrieval of variables differing only by case.
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Check that environment variables differing only by their
-= case are interpreted as the same variables in the WIN32
-= platform.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_ilogb_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_ilogb_test1 coreclrpal)
-
-target_link_libraries(paltest_ilogb_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * ilogb_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, int expected)
+void __cdecl ilogb_test1_validate(double value, int expected)
{
int result = ilogb(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_ilogb_test1_paltest_ilogb_test1, "c_runtime/ilogb/test1/paltest_ilogb_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected);
+ ilogb_test1_validate(tests[i].value, tests[i].expected);
}
PAL_Terminate();
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = ilogb
-Name = Call ilogb with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the ilogb function with various num/exponent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_ilogbf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_ilogbf_test1 coreclrpal)
-
-target_link_libraries(paltest_ilogbf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * ilogbf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, int expected)
+void __cdecl ilogbf_test1_validate(float value, int expected)
{
int result = ilogbf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_ilogbf_test1_paltest_ilogbf_test1, "c_runtime/ilogbf/test1/paltest_ilogbf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected);
+ ilogbf_test1_validate(tests[i].value, tests[i].expected);
}
PAL_Terminate();
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = ilogbf
-Name = Call ilogbf with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the ilogbf function with various num/expfonent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isalnum_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isalnum_test1 coreclrpal)
-
-target_link_libraries(paltest_isalnum_test1
- ${COMMON_TEST_LIBRARIES}
-)
int character;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_isalnum_test1_paltest_isalnum_test1, "c_runtime/isalnum/test1/paltest_isalnum_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = isalnum
-Name = Positive Test for isalnum
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the isalnum function
-= Check that a number of characters return the correct values for whether
-= they are alpha/numeric or not.
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isalpha_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isalpha_test1 coreclrpal)
-
-target_link_libraries(paltest_isalpha_test1
- ${COMMON_TEST_LIBRARIES}
-)
int character;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_isalpha_test1_paltest_isalpha_test1, "c_runtime/isalpha/test1/paltest_isalpha_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = isalpha
-Name = Positive Test for isalpha
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the isalpha function
-= Check that a number of characters return the correct values for whether
-= they are alpha or not.
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isdigit_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isdigit_test1 coreclrpal)
-
-target_link_libraries(paltest_isdigit_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_isdigit_test1_paltest_isdigit_test1, "c_runtime/isdigit/test1/paltest_isdigit_test1")
{
int i;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = isdigit
-Name = Test #1 for isdigit
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Checks every character against the known range of digits.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_islower_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_islower_test1 coreclrpal)
-
-target_link_libraries(paltest_islower_test1
- ${COMMON_TEST_LIBRARIES}
-)
int character;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_islower_test1_paltest_islower_test1, "c_runtime/islower/test1/paltest_islower_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = islower
-Name = Positive Test for islower
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the islower function
-= Check that a number of characters return the correct values for whether
-= they are lower case or not.
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- isprint.cpp
-)
-
-add_executable(paltest_isprint_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isprint_test1 coreclrpal)
-
-target_link_libraries(paltest_isprint_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_isprint_test1_paltest_isprint_test1, "c_runtime/isprint/test1/paltest_isprint_test1")
{
int err;
int index;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = miscellaneous
-Function = isprint
-Name = Positive test for isprint API to check if a character is printable
-TYPE = DEFAULT
-EXE1 = isprint
-Description
-=Test the isprint to check if a character is printable
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_isprint_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_isprint_test2 coreclrpal)
-
-target_link_libraries(paltest_isprint_test2
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_isprint_test2_paltest_isprint_test2, "c_runtime/isprint/test2/paltest_isprint_test2")
{
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = miscellaneous
-Function = isprint
-Name = Test isprint API to check if out of range characters are not printable.
-TYPE = DEFAULT
-EXE1 = test2
-Description
-=Test the isprint function to verify that out of range characters
-=are not printable.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isspace_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isspace_test1 coreclrpal)
-
-target_link_libraries(paltest_isspace_test1
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_isspace_test1_paltest_isspace_test1, "c_runtime/isspace/test1/paltest_isspace_test1")
{
int i=0;
long result = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = isspace
-Name = Positive Test for isspace
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Run through every possible character. For each time that isspace returns
-= >0, check through a list of the known space characters to ensure that it
-= is really a space. Also, when it returns <=0, ensure that that character
-= isn't a space.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isupper_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isupper_test1 coreclrpal)
-
-target_link_libraries(paltest_isupper_test1
- ${COMMON_TEST_LIBRARIES}
-)
int character;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_isupper_test1_paltest_isupper_test1, "c_runtime/isupper/test1/paltest_isupper_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = isupper
-Name = Positive Test for isupper
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the isupper function
-= Check that a number of characters return the correct values for whether
-= they are upper case or not.
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_iswdigit_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_iswdigit_test1 coreclrpal)
-
-target_link_libraries(paltest_iswdigit_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_iswdigit_test1_paltest_iswdigit_test1, "c_runtime/iswdigit/test1/paltest_iswdigit_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = iswdigit
-Name = Positive Test for iswdigit
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the iswdigit function.
-= Tests the passed parameter to iswdigit for being a
-= digit ('0' - '9'). Also passes non-digits to make sure
-= iswdigit picks them up.
-= NOTE: There are three ASCII values that under Windows,
-= iswdigit will return non-zero, indicating a digit.
-= These values are quite apparently not digits:
-= 178, 179, 185. These are not tested.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_iswprint_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_iswprint_test1 coreclrpal)
-
-target_link_libraries(paltest_iswprint_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_iswprint_test1_paltest_iswprint_test1, "c_runtime/iswprint/test1/paltest_iswprint_test1")
{
WORD Info;
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = iswprint
-Name = Positive Test for iswprint
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests iswprint with all wide characters, ensuring they are
-=consistent with GetStringTypeExW.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_iswspace_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_iswspace_test1 coreclrpal)
-
-target_link_libraries(paltest_iswspace_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_iswspace_test1_paltest_iswspace_test1, "c_runtime/iswspace/test1/paltest_iswspace_test1")
{
int ret;
int i;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = iswspace
-Name = Positive Test for iswspace
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests iswspace with a range of wide characters.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_iswupper_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_iswupper_test1 coreclrpal)
-
-target_link_libraries(paltest_iswupper_test1
- ${COMMON_TEST_LIBRARIES}
-)
WCHAR character;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_iswupper_test1_paltest_iswupper_test1, "c_runtime/iswupper/test1/paltest_iswupper_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = isupper
-Name = Positive Test for iswupper
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the iswupper function
-= Check that a number of characters return the correct values for whether
-= they are upper case or not.
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isxdigit_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isxdigit_test1 coreclrpal)
-
-target_link_libraries(paltest_isxdigit_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_isxdigit_test1_paltest_isxdigit_test1, "c_runtime/isxdigit/test1/paltest_isxdigit_test1")
{
int i;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = isxdigit
-Name = Positive Test for isxdigit
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Run through every possible character. For each time that isxdigit returns
-= 1, check through a list of the known hex characters to ensure that it
-= is really a hex char. Also, when it returns 0, ensure that that character
-= isn't a hex character.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_llabs_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_llabs_test1 coreclrpal)
-
-target_link_libraries(paltest_llabs_test1
- ${COMMON_TEST_LIBRARIES}
-)
__int64 AbsoluteLongLongValue;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_llabs_test1_paltest_llabs_test1, "c_runtime/llabs/test1/paltest_llabs_test1")
{
__int64 result=0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = labs
-Name = Series of tests for labs: positive, negative, zero, maximum __int64 value.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call llabs on a series of values -- negative, positive, zero,
-= and the largest negative value of an __int64. Ensure that they are all
-= changed properly to their absoulte value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_log_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_log_test1 coreclrpal)
-
-target_link_libraries(paltest_log_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * log_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl log_test1_validate(double value, double expected, double variance)
{
double result = log(value);
}
/**
- * validate
+ * log_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl log_test1_validate_isnan(double value)
{
double result = log(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_log_test1_paltest_log_test1, "c_runtime/log/test1/paltest_log_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ log_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
+ log_test1_validate_isnan(PAL_NEGINF);
+ log_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = log
-Name = Positive Test for log
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the log() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_log10_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_log10_test1 coreclrpal)
-
-target_link_libraries(paltest_log10_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * log10_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl log10_test1_validate(double value, double expected, double variance)
{
double result = log10(value);
}
/**
- * validate
+ * log10_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl log10_test1_validate_isnan(double value)
{
double result = log10(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_log10_test1_paltest_log10_test1, "c_runtime/log10/test1/paltest_log10_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ log10_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
+ log10_test1_validate_isnan(PAL_NEGINF);
+ log10_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = log10
-Name = Positive Test for log10
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the log10() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_log10f_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_log10f_test1 coreclrpal)
-
-target_link_libraries(paltest_log10f_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * log10f_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl log10f_test1_validate(float value, float expected, float variance)
{
float result = log10f(value);
}
/**
- * validate
+ * log10f_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl log10f_test1_validate_isnan(float value)
{
float result = log10f(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_log10f_test1_paltest_log10f_test1, "c_runtime/log10f/test1/paltest_log10f_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ log10f_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
+ log10f_test1_validate_isnan(PAL_NEGINF);
+ log10f_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = log10f
-Name = Positive Test for log10f
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the log10f() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_log2_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_log2_test1 coreclrpal)
-
-target_link_libraries(paltest_log2_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * log2_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl log2_test1_validate(double value, double expected, double variance)
{
double result = log2(value);
}
/**
- * validate
+ * log2_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl log2_test1_validate_isnan(double value)
{
double result = log2(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_log2_test1_paltest_log2_test1, "c_runtime/log2/test1/paltest_log2_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ log2_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
+ log2_test1_validate_isnan(PAL_NEGINF);
+ log2_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = log2
-Name = Call log2 with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the log2 function with various num/exponent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_log2f_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_log2f_test1 coreclrpal)
-
-target_link_libraries(paltest_log2f_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * log2f_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl log2f_test1_validate(float value, float expected, float variance)
{
float result = log2f(value);
}
/**
- * validate
+ * log2f_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl log2f_test1_validate_isnan(float value)
{
float result = log2f(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_log2f_test1_paltest_log2f_test1, "c_runtime/log2f/test1/paltest_log2f_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ log2f_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
+ log2f_test1_validate_isnan(PAL_NEGINF);
+ log2f_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = log2f
-Name = Call log2f with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the log2f function with various num/expfonent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_logf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_logf_test1 coreclrpal)
-
-target_link_libraries(paltest_logf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * logf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl logf_test1_validate(float value, float expected, float variance)
{
float result = logf(value);
}
/**
- * validate
+ * logf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl logf_test1_validate_isnan(float value)
{
float result = logf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_logf_test1_paltest_logf_test1, "c_runtime/logf/test1/paltest_logf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
+ logf_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
+ logf_test1_validate_isnan(PAL_NEGINF);
+ logf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = logf
-Name = Positive Test for logf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes a series of values to the logf() function,
-= checking each for the expected result. Also checks
-= for proper handling of out-of-range values.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_malloc_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_malloc_test1 coreclrpal)
-
-target_link_libraries(paltest_malloc_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_malloc_test1_paltest_malloc_test1, "c_runtime/malloc/test1/paltest_malloc_test1")
{
char *testA;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = malloc
-Name = Positive Test for malloc
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that malloc properly allocates memory.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_malloc_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_malloc_test2 coreclrpal)
-
-target_link_libraries(paltest_malloc_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_malloc_test2_paltest_malloc_test2, "c_runtime/malloc/test2/paltest_malloc_test2")
{
char *testA;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = malloc
-Name = Positive Test for malloc
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test that malloc(0) returns non-zero value
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_memchr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_memchr_test1 coreclrpal)
-
-target_link_libraries(paltest_memchr_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_memchr_test1_paltest_memchr_test1, "c_runtime/memchr/test1/paltest_memchr_test1")
{
int i = 0;
char *result = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = memchr
-Name = Positive Test for memchr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Create a string buffer, and check for a number of characters in it.
-= Test to ensure it returns NULL if it can't find the character, and that
-= the size argument works properly.
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_memcmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_memcmp_test1 coreclrpal)
-
-target_link_libraries(paltest_memcmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_memcmp_test1_paltest_memcmp_test1, "c_runtime/memcmp/test1/paltest_memcmp_test1")
{
char testA[] = "aaaaaaaaaaaaaaaaaaaa";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = memcmp
-Name = Positive Test for memcmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Check that memcmp find identical buffers to be identical,
-= and that it correctly orders different buffers.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_memcpy_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_memcpy_test1 coreclrpal)
-
-target_link_libraries(paltest_memcpy_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_memcpy_test1_paltest_memcpy_test1, "c_runtime/memcpy/test1/paltest_memcpy_test1")
{
char testA[20];
char testB[20];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = memcpy
-Name = Positive Test for memcpy
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Calls memcpy and verifies that the buffer was copied correctly.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_memmove_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_memmove_test1 coreclrpal)
-
-target_link_libraries(paltest_memmove_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_memmove_test1_paltest_memmove_test1, "c_runtime/memmove/test1/paltest_memmove_test1")
{
char testA[11] = "abcdefghij";
char testB[15] = "aabbccddeeffgg";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = memmove
-Name = Positive Test for memmove
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test that memmove correctly copies text from one buffer to another
-= even when the buffers overlap.
-
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_memset_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_memset_test1 coreclrpal)
-
-target_link_libraries(paltest_memset_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_memset_test1_paltest_memset_test1, "c_runtime/memset/test1/paltest_memset_test1")
{
char testA[22] = "bbbbbbbbbbbbbbbbbbbbb";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = memset
-Name = Positive Test for memset
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Check that memset correctly fills a destination buffer without overflowing it.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_modf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_modf_test1 coreclrpal)
-
-target_link_libraries(paltest_modf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * modf_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance, double expected_intpart, double variance_intpart)
+void __cdecl modf_test1_validate(double value, double expected, double variance, double expected_intpart, double variance_intpart)
{
double result_intpart;
double result = modf(value, &result_intpart);
}
/**
- * validate
+ * modf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl modf_test1_validate_isnan(double value)
{
double result_intpart;
double result = modf(value, &result_intpart);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_modf_test1_paltest_modf_test1, "c_runtime/modf/test1/paltest_modf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance, tests[i].expected_intpart, tests[i].variance_intpart);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance, -tests[i].expected_intpart, tests[i].variance_intpart);
+ modf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance, tests[i].expected_intpart, tests[i].variance_intpart);
+ modf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance, -tests[i].expected_intpart, tests[i].variance_intpart);
}
- validate_isnan(PAL_NAN);
+ modf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = modf
-Name = Positive Test for modf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to modf() a series of values, checking that
-= each one return to correct value.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_modff_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_modff_test1 coreclrpal)
-
-target_link_libraries(paltest_modff_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * modff_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance, float expected_intpart, float variance_intpart)
+void __cdecl modff_test1_validate(float value, float expected, float variance, float expected_intpart, float variance_intpart)
{
float result_intpart;
float result = modff(value, &result_intpart);
}
/**
- * validate
+ * modff_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl modff_test1_validate_isnan(float value)
{
float result_intpart;
float result = modff(value, &result_intpart);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_modff_test1_paltest_modff_test1, "c_runtime/modff/test1/paltest_modff_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance, tests[i].expected_intpart, tests[i].variance_intpart);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance, -tests[i].expected_intpart, tests[i].variance_intpart);
+ modff_test1_validate( tests[i].value, tests[i].expected, tests[i].variance, tests[i].expected_intpart, tests[i].variance_intpart);
+ modff_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance, -tests[i].expected_intpart, tests[i].variance_intpart);
}
- validate_isnan(PAL_NAN);
+ modff_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = modff
-Name = Positive Test for modff
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to modff() a series of values, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_pow_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pow_test1 coreclrpal)
-
-target_link_libraries(paltest_pow_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * pow_test1_validate
*
* test validation function
*/
-void __cdecl validate(double x, double y, double expected, double variance)
+void __cdecl pow_test1_validate(double x, double y, double expected, double variance)
{
double result = pow(x, y);
}
/**
- * validate
+ * pow_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double x, double y)
+void __cdecl pow_test1_validate_isnan(double x, double y)
{
double result = pow(x, y);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_pow_test1_paltest_pow_test1, "c_runtime/pow/test1/paltest_pow_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].x, tests[i].y, tests[i].expected, tests[i].variance);
+ pow_test1_validate(tests[i].x, tests[i].y, tests[i].expected, tests[i].variance);
}
- validate_isnan(-10, -1.5707963267948966); // y: -(pi / 2)
- validate_isnan(-10, -0.78539816339744828); // y: -(pi / 4)
- validate_isnan(-10, 0.78539816339744828); // y: pi / 4
- validate_isnan(-10, 1.5707963267948966); // y: pi / 2
+ pow_test1_validate_isnan(-10, -1.5707963267948966); // y: -(pi / 2)
+ pow_test1_validate_isnan(-10, -0.78539816339744828); // y: -(pi / 4)
+ pow_test1_validate_isnan(-10, 0.78539816339744828); // y: pi / 4
+ pow_test1_validate_isnan(-10, 1.5707963267948966); // y: pi / 2
- validate_isnan(-2.7182818284590452, -1.5707963267948966); // x: -(e) y: -(pi / 2)
- validate_isnan(-2.7182818284590452, -0.78539816339744828); // x: -(e) y: -(pi / 4)
- validate_isnan(-2.7182818284590452, 0.78539816339744828); // x: -(e) y: pi / 4
- validate_isnan(-2.7182818284590452, 1.5707963267948966); // x: -(e) y: pi / 2
+ pow_test1_validate_isnan(-2.7182818284590452, -1.5707963267948966); // x: -(e) y: -(pi / 2)
+ pow_test1_validate_isnan(-2.7182818284590452, -0.78539816339744828); // x: -(e) y: -(pi / 4)
+ pow_test1_validate_isnan(-2.7182818284590452, 0.78539816339744828); // x: -(e) y: pi / 4
+ pow_test1_validate_isnan(-2.7182818284590452, 1.5707963267948966); // x: -(e) y: pi / 2
- validate_isnan(PAL_NEGINF, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_NEGINF);
+ pow_test1_validate_isnan(PAL_NEGINF, PAL_NAN);
+ pow_test1_validate_isnan(PAL_NAN, PAL_NEGINF);
- validate_isnan(PAL_POSINF, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_POSINF);
+ pow_test1_validate_isnan(PAL_POSINF, PAL_NAN);
+ pow_test1_validate_isnan(PAL_NAN, PAL_POSINF);
- validate_isnan(PAL_NAN, PAL_NAN);
+ pow_test1_validate_isnan(PAL_NAN, PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = pow
-Name = Call pow with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the pow function with various num/exponent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_powf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_powf_test1 coreclrpal)
-
-target_link_libraries(paltest_powf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * powf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float x, float y, float expected, float variance)
+void __cdecl powf_test1_validate(float x, float y, float expected, float variance)
{
float result = powf(x, y);
}
/**
- * validate
+ * powf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float x, float y)
+void __cdecl powf_test1_validate_isnan(float x, float y)
{
float result = powf(x, y);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_powf_test1_paltest_powf_test1, "c_runtime/powf/test1/paltest_powf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].x, tests[i].y, tests[i].expected, tests[i].variance);
+ powf_test1_validate(tests[i].x, tests[i].y, tests[i].expected, tests[i].variance);
}
- validate_isnan(-10, -1.57079633f); // y: -(pi / 2)
- validate_isnan(-10, -0.785398163f); // y: -(pi / 4)
- validate_isnan(-10, 0.785398163f); // y: pi / 4
- validate_isnan(-10, 1.57079633f); // y: pi / 2
+ powf_test1_validate_isnan(-10, -1.57079633f); // y: -(pi / 2)
+ powf_test1_validate_isnan(-10, -0.785398163f); // y: -(pi / 4)
+ powf_test1_validate_isnan(-10, 0.785398163f); // y: pi / 4
+ powf_test1_validate_isnan(-10, 1.57079633f); // y: pi / 2
- validate_isnan(-2.71828183f, -1.57079633f); // x: -(e) y: -(pi / 2)
- validate_isnan(-2.71828183f, -0.785398163f); // x: -(e) y: -(pi / 4)
- validate_isnan(-2.71828183f, 0.785398163f); // x: -(e) y: pi / 4
- validate_isnan(-2.71828183f, 1.57079633f); // x: -(e) y: pi / 2
+ powf_test1_validate_isnan(-2.71828183f, -1.57079633f); // x: -(e) y: -(pi / 2)
+ powf_test1_validate_isnan(-2.71828183f, -0.785398163f); // x: -(e) y: -(pi / 4)
+ powf_test1_validate_isnan(-2.71828183f, 0.785398163f); // x: -(e) y: pi / 4
+ powf_test1_validate_isnan(-2.71828183f, 1.57079633f); // x: -(e) y: pi / 2
- validate_isnan(PAL_NEGINF, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_NEGINF);
+ powf_test1_validate_isnan(PAL_NEGINF, PAL_NAN);
+ powf_test1_validate_isnan(PAL_NAN, PAL_NEGINF);
- validate_isnan(PAL_POSINF, PAL_NAN);
- validate_isnan(PAL_NAN, PAL_POSINF);
+ powf_test1_validate_isnan(PAL_POSINF, PAL_NAN);
+ powf_test1_validate_isnan(PAL_NAN, PAL_POSINF);
- validate_isnan(PAL_NAN, PAL_NAN);
+ powf_test1_validate_isnan(PAL_NAN, PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = powf
-Name = Call powf with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the powf function with various num/expfonent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __printf_H__
#define __printf_H__
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_printf(const char *formatstr, char* param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoStrTest DoStrTest_printf
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_printf(const char *formatstr, WCHAR* param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoWStrTest DoWStrTest_printf
-void DoPointerTest(const char *formatstr, void* param, char* paramstr,
+inline void DoPointerTest_printf(const char *formatstr, void* param, char* paramstr,
const char *checkstr1)
{
int ret;
strlen(checkstr1), ret);
}
}
+#define DoPointerTest DoPointerTest_printf
-void DoCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoCountTest_printf(const char *formatstr, int param, const char *checkstr)
{
int ret;
int n = -1;
strlen(checkstr), ret);
}
}
+#define DoCountTest DoCountTest_printf
-void DoShortCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoShortCountTest_printf(const char *formatstr, int param, const char *checkstr)
{
int ret;
short int n = -1;
strlen(checkstr), ret);
}
}
+#define DoShortCountTest DoShortCountTest_printf
-
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_printf(const char *formatstr, char param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoCharTest DoCharTest_printf
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_printf(const char *formatstr, WCHAR param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoWCharTest DoWCharTest_printf
-void DoNumTest(const char *formatstr, int param, const char *checkstr)
+inline void DoNumTest_printf(const char *formatstr, int param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoNumTest DoNumTest_printf
-void DoI64Test(const char *formatstr, INT64 param, char *valuestr,
+inline void DoI64Test_printf(const char *formatstr, INT64 param, char *valuestr,
const char *checkstr1)
{
int ret;
strlen(checkstr1), ret);
}
}
+#define DoI64Test DoI64Test_printf
-void DoDoubleTest(const char *formatstr, double param,
+inline void DoDoubleTest_printf(const char *formatstr, double param,
const char *checkstr1, const char *checkstr2)
{
int ret;
strlen(checkstr1), strlen(checkstr2), ret);
}
}
+#define DoDoubleTest DoDoubleTest_printf
-void DoArgumentPrecTest(const char *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_printf(const char *formatstr, int precision, void *param,
char *paramstr, const char *checkstr1, const char *checkstr2)
{
int ret;
strlen(checkstr1), strlen(checkstr2), ret);
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_printf
-void DoArgumentPrecDoubleTest(const char *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_printf(const char *formatstr, int precision, double param,
const char *checkstr1, const char *checkstr2)
{
int ret;
strlen(checkstr1), strlen(checkstr2), ret);
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_printf
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_printf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test1 coreclrpal)
-
-target_link_libraries(paltest_printf_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../printf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test1_paltest_printf_test1, "c_runtime/printf/test1/paltest_printf_test1")
{
char checkstr[] = "hello world";
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if printf works correctly
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_printf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test10 coreclrpal)
-
-target_link_libraries(paltest_printf_test10
- ${COMMON_TEST_LIBRARIES}
-)
#include "../printf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test10_paltest_printf_test10, "c_runtime/printf/test10/paltest_printf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests printf with octal numbers
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_printf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test11 coreclrpal)
-
-target_link_libraries(paltest_printf_test11
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../printf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test11_paltest_printf_test11, "c_runtime/printf/test11/paltest_printf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests printf with unsigned numbers
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_printf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test12 coreclrpal)
-
-target_link_libraries(paltest_printf_test12
- ${COMMON_TEST_LIBRARIES}
-)
#include "../printf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test12_paltest_printf_test12, "c_runtime/printf/test12/paltest_printf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests printf with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_printf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test13 coreclrpal)
-
-target_link_libraries(paltest_printf_test13
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test13_paltest_printf_test13, "c_runtime/printf/test13/paltest_printf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests printf with hex numbers (uppercase)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_printf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test14 coreclrpal)
-
-target_link_libraries(paltest_printf_test14
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test14_paltest_printf_test14, "c_runtime/printf/test14/paltest_printf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests printf with exponential format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_printf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test15 coreclrpal)
-
-target_link_libraries(paltest_printf_test15
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test15_paltest_printf_test15, "c_runtime/printf/test15/paltest_printf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests printf with exponential format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_printf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test16 coreclrpal)
-
-target_link_libraries(paltest_printf_test16
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test16_paltest_printf_test16, "c_runtime/printf/test16/paltest_printf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests printf with decimal point format doubles
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_printf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test17 coreclrpal)
-
-target_link_libraries(paltest_printf_test17
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test17_paltest_printf_test17, "c_runtime/printf/test17/paltest_printf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests printf with compact format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_printf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test18 coreclrpal)
-
-target_link_libraries(paltest_printf_test18
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test18_paltest_printf_test18, "c_runtime/printf/test18/paltest_printf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests printf with compact format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_printf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test19 coreclrpal)
-
-target_link_libraries(paltest_printf_test19
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test19_paltest_printf_test19, "c_runtime/printf/test19/paltest_printf_test19")
{
int n = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests printf with argument specified precision
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_printf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test2 coreclrpal)
-
-target_link_libraries(paltest_printf_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test2_paltest_printf_test2, "c_runtime/printf/test2/paltest_printf_test2")
{
if (PAL_Initialize(argc, argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests printf with strings
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_printf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test3 coreclrpal)
-
-target_link_libraries(paltest_printf_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test3_paltest_printf_test3, "c_runtime/printf/test3/paltest_printf_test3")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests printf with wide strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_printf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test4 coreclrpal)
-
-target_link_libraries(paltest_printf_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../printf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test4_paltest_printf_test4, "c_runtime/printf/test4/paltest_printf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests printf with pointers
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_printf_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test5 coreclrpal)
-
-target_link_libraries(paltest_printf_test5
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test5_paltest_printf_test5, "c_runtime/printf/test5/paltest_printf_test5")
{
char *longStr =
"really-long-string-that-just-keeps-going-on-and-on-and-on.."
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests printf with the count specifier
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_printf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test6 coreclrpal)
-
-target_link_libraries(paltest_printf_test6
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test6_paltest_printf_test6, "c_runtime/printf/test6/paltest_printf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests printf with characters
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_printf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test7 coreclrpal)
-
-target_link_libraries(paltest_printf_test7
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test7_paltest_printf_test7, "c_runtime/printf/test7/paltest_printf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests printf with wide characters
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_printf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test8 coreclrpal)
-
-target_link_libraries(paltest_printf_test8
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test8_paltest_printf_test8, "c_runtime/printf/test8/paltest_printf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests printf with decimal numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_printf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_printf_test9 coreclrpal)
-
-target_link_libraries(paltest_printf_test9
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_printf_test9_paltest_printf_test9, "c_runtime/printf/test9/paltest_printf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = printf
-Name = Positive Test for printf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests printf with integer numbers
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_qsort_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_qsort_test1 coreclrpal)
-
-target_link_libraries(paltest_qsort_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl charcmp(const void *pa, const void *pb)
+int __cdecl charcmp_qsort_test1(const void *pa, const void *pb)
{
return memcmp(pa, pb, 1);
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_qsort_test1_paltest_qsort_test1, "c_runtime/qsort/test1/paltest_qsort_test1")
{
char before[] = "cgaiehdbjf";
const char after[] = "abcdefghij";
}
- qsort(before, sizeof(before) - 1, sizeof(char), charcmp);
+ qsort(before, sizeof(before) - 1, sizeof(char), charcmp_qsort_test1);
if (memcmp(before, after, sizeof(before)) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = qsort
-Name = Positive Test for qsort
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Calls qsort to sort a buffer, and verifies that it has done the job correctly.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_qsort_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_qsort_test2 coreclrpal)
-
-target_link_libraries(paltest_qsort_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl twocharcmp(const void *pa, const void *pb)
+int __cdecl twocharcmp_qsort_test2(const void *pa, const void *pb)
{
return memcmp(pa, pb, 2);
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_qsort_test2_paltest_qsort_test2, "c_runtime/qsort/test2/paltest_qsort_test2")
{
char before[] = "ccggaaiieehhddbbjjff";
const char after[] = "aabbccddeeffgghhiijj";
}
- qsort(before, (sizeof(before) - 1) / 2, 2 * sizeof(char), twocharcmp);
+ qsort(before, (sizeof(before) - 1) / 2, 2 * sizeof(char), twocharcmp_qsort_test2);
if (memcmp(before, after, sizeof(before)) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = qsort
-Name = Positive Test for qsort
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Calls qsort to sort a buffer, and verifies that it has done the job correctly.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_rand_srand_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_rand_srand_test1 coreclrpal)
-
-target_link_libraries(paltest_rand_srand_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_rand_srand_test1_paltest_rand_srand_test1, "c_runtime/rand_srand/test1/paltest_rand_srand_test1")
{
int RandNumber[10];
int TempRandNumber;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = rand and srand
-Name = Positive Test for rand and srand
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call rand without srand and get 10 random number batch 1.
-= call srand with seed 2, get 10 other random number and verify
-= that numbers are different from the batch 1.
-= Set the seed to 1, get 10 other random number and verify
-= that the generated number are the same as batch 1.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_realloc_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_realloc_test1 coreclrpal)
-
-target_link_libraries(paltest_realloc_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_realloc_test1_paltest_realloc_test1, "c_runtime/realloc/test1/paltest_realloc_test1")
{
char *testA;
const int len1 = 10;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = realloc
-Name = Positive Test for realloc
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Uses realloc to allocate and realloate memory, checking that memory
-= contents are copied when the memory is reallocated.
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_scalbn_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_scalbn_test1 coreclrpal)
-
-target_link_libraries(paltest_scalbn_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * scalbn_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, int exponent, double expected, double variance)
+void __cdecl scalbn_test1_validate(double value, int exponent, double expected, double variance)
{
double result = scalbn(value, exponent);
}
/**
- * validate
+ * scalbn_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value, int exponent)
+void __cdecl scalbn_test1_validate_isnan(double value, int exponent)
{
double result = scalbn(value, exponent);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_scalbn_test1_paltest_scalbn_test1, "c_runtime/scalbn/test1/paltest_scalbn_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].exponent, tests[i].expected, tests[i].variance);
+ scalbn_test1_validate(tests[i].value, tests[i].exponent, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN, 2147483647);
+ scalbn_test1_validate_isnan(PAL_NAN, 2147483647);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = scalbn
-Name = Call scalbn with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the scalbn function with various num/exponent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_scalbnf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_scalbnf_test1 coreclrpal)
-
-target_link_libraries(paltest_scalbnf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * scalbnf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, int exponent, float expected, float variance)
+void __cdecl scalbnf_test1_validate(float value, int exponent, float expected, float variance)
{
float result = scalbnf(value, exponent);
}
/**
- * validate
+ * scalbnf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value, int exponent)
+void __cdecl scalbnf_test1_validate_isnan(float value, int exponent)
{
float result = scalbnf(value, exponent);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_scalbnf_test1_paltest_scalbnf_test1, "c_runtime/scalbnf/test1/paltest_scalbnf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].exponent, tests[i].expected, tests[i].variance);
+ scalbnf_test1_validate(tests[i].value, tests[i].exponent, tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN, 2147483647);
+ scalbnf_test1_validate_isnan(PAL_NAN, 2147483647);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = scalbnf
-Name = Call scalbnf with some std input/output.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the scalbnf function with various num/expfonent pairs
-= that should produce std answers.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_sin_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sin_test1 coreclrpal)
-
-target_link_libraries(paltest_sin_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * sin_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl sin_test1_validate(double value, double expected, double variance)
{
double result = sin(value);
}
/**
- * validate
+ * sin_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl sin_test1_validate_isnan(double value)
{
double result = sin(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_sin_test1_paltest_sin_test1, "c_runtime/sin/test1/paltest_sin_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ sin_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ sin_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ sin_test1_validate_isnan(PAL_NEGINF);
+ sin_test1_validate_isnan(PAL_NAN);
+ sin_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sin
-Name = Positive Test for sin
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to sin() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_sinf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sinf_test1 coreclrpal)
-
-target_link_libraries(paltest_sinf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * sinf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl sinf_test1_validate(float value, float expected, float variance)
{
float result = sinf(value);
}
/**
- * validate
+ * sinf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl sinf_test1_validate_isnan(float value)
{
float result = sinf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_sinf_test1_paltest_sinf_test1, "c_runtime/sinf/test1/paltest_sinf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ sinf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ sinf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ sinf_test1_validate_isnan(PAL_NEGINF);
+ sinf_test1_validate_isnan(PAL_NAN);
+ sinf_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sinf
-Name = Positive Test for sinf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to sinf() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_sinh_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sinh_test1 coreclrpal)
-
-target_link_libraries(paltest_sinh_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * sinh_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl sinh_test1_validate(double value, double expected, double variance)
{
double result = sinh(value);
}
/**
- * validate
+ * sinh_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl sinh_test1_validate_isnan(double value)
{
double result = sinh(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_sinh_test1_paltest_sinh_test1, "c_runtime/sinh/test1/paltest_sinh_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ sinh_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ sinh_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ sinh_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sinh
-Name = Positive Test for sinh
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to sinh() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_sinhf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sinhf_test1 coreclrpal)
-
-target_link_libraries(paltest_sinhf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * sinhf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl sinhf_test1_validate(float value, float expected, float variance)
{
float result = sinhf(value);
}
/**
- * validate
+ * sinhf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl sinhf_test1_validate_isnan(float value)
{
float result = sinhf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_sinhf_test1_paltest_sinhf_test1, "c_runtime/sinhf/test1/paltest_sinhf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ sinhf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ sinhf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ sinhf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sinhf
-Name = Positive Test for sinhf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to sinhf() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __SPRINTF_S_H__
#define __SPRINTF_S_H__
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_sprintf_s(const char *formatstr, char* param, const char *checkstr)
{
char buf[256] = { 0 };
param, formatstr, checkstr, buf);
}
}
+#define DoStrTest DoStrTest_sprintf_s
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_sprintf_s(const char *formatstr, WCHAR* param, const char *checkstr)
{
char buf[256] = { 0 };
convertC(param), formatstr, checkstr, buf);
}
}
+#define DoWStrTest DoWStrTest_sprintf_s
-void DoPointerTest(const char *formatstr, void* param, char* paramstr,
+inline void DoPointerTest_sprintf_s(const char *formatstr, void* param, char* paramstr,
const char *checkstr1)
{
char buf[256] = { 0 };
paramstr, formatstr, checkstr1, buf);
}
}
+#define DoPointerTest DoPointerTest_sprintf_s
-void DoCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoCountTest_sprintf_s(const char *formatstr, int param, const char *checkstr)
{
char buf[512] = { 0 };
int n = -1;
Fail("ERROR: Expected \"%s\" got \"%s\".\n", checkstr, buf);
}
}
+#define DoCountTest DoCountTest_sprintf_s
-void DoShortCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoShortCountTest_sprintf_s(const char *formatstr, int param, const char *checkstr)
{
char buf[256] = { 0 };
short int n = -1;
Fail("ERROR: Expected \"%s\" got \"%s\".\n", checkstr, buf);
}
}
+#define DoShortCountTest DoShortCountTest_sprintf_s
-
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_sprintf_s(const char *formatstr, char param, const char *checkstr)
{
char buf[256] = { 0 };
param, param, formatstr, checkstr, buf);
}
}
+#define DoCharTest DoCharTest_sprintf_s
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_sprintf_s(const char *formatstr, WCHAR param, const char *checkstr)
{
char buf[256] = { 0 };
(char)param, param, formatstr, checkstr, buf);
}
}
+#define DoWCharTest DoWCharTest_sprintf_s
-void DoNumTest(const char *formatstr, int value, const char *checkstr)
+inline void DoNumTest_sprintf_s(const char *formatstr, int value, const char *checkstr)
{
char buf[256] = { 0 };
value, formatstr, checkstr, buf);
}
}
+#define DoNumTest DoNumTest_sprintf_s
-void DoI64Test(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1)
+inline void DoI64Test_sprintf_s(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1)
{
char buf[256] = { 0 };
valuestr, formatstr, checkstr1, buf);
}
}
+#define DoI64Test DoI64Test_sprintf_s
-void DoDoubleTest(const char *formatstr, double value, const char *checkstr1,
+inline void DoDoubleTest_sprintf_s(const char *formatstr, double value, const char *checkstr1,
const char *checkstr2)
{
char buf[256] = { 0 };
value, formatstr, checkstr1, checkstr2, buf);
}
}
+#define DoDoubleTest DoDoubleTest_sprintf_s
-void DoArgumentPrecTest(const char *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_sprintf_s(const char *formatstr, int precision, void *param,
char *paramstr, const char *checkstr1, const char *checkstr2)
{
char buf[256];
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_sprintf_s
-void DoArgumentPrecDoubleTest(const char *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_sprintf_s(const char *formatstr, int precision, double param,
const char *checkstr1, const char *checkstr2)
{
char buf[256];
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_sprintf_s
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_sprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test1_paltest_sprintf_test1, "c_runtime/sprintf_s/test1/paltest_sprintf_test1")
{
char checkstr[] = "hello world";
char buf[256];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if sprintf_s works correctly
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_sprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test10_paltest_sprintf_test10, "c_runtime/sprintf_s/test10/paltest_sprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests sprintf_s with octal numbers
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_sprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test11_paltest_sprintf_test11, "c_runtime/sprintf_s/test11/paltest_sprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests sprintf_s with unsigned numbers
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_sprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test12_paltest_sprintf_test12, "c_runtime/sprintf_s/test12/paltest_sprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests sprintf_s with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_sprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test13_paltest_sprintf_test13, "c_runtime/sprintf_s/test13/paltest_sprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests sprintf_s with hex numbers (uppercase)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_sprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test14_paltest_sprintf_test14, "c_runtime/sprintf_s/test14/paltest_sprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests sprintf_s with exponential format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_sprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test15_paltest_sprintf_test15, "c_runtime/sprintf_s/test15/paltest_sprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests sprintf_s with exponential format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_sprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test16_paltest_sprintf_test16, "c_runtime/sprintf_s/test16/paltest_sprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests sprintf_s with decimal point format doubles
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_sprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test17_paltest_sprintf_test17, "c_runtime/sprintf_s/test17/paltest_sprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests sprintf_s with compact format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_sprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test18_paltest_sprintf_test18, "c_runtime/sprintf_s/test18/paltest_sprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests sprintf_s with compact format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_sprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test19_paltest_sprintf_test19, "c_runtime/sprintf_s/test19/paltest_sprintf_test19")
{
int n = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests sprintf_s with argument specified precision
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_sprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test2_paltest_sprintf_test2, "c_runtime/sprintf_s/test2/paltest_sprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests sprintf_s with strings
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_sprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test3_paltest_sprintf_test3, "c_runtime/sprintf_s/test3/paltest_sprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests sprintf_s with wide strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_sprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test4_paltest_sprintf_test4, "c_runtime/sprintf_s/test4/paltest_sprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests sprintf_s with pointers
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_sprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test6_paltest_sprintf_test6, "c_runtime/sprintf_s/test6/paltest_sprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests sprintf_s with characters
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_sprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test7_paltest_sprintf_test7, "c_runtime/sprintf_s/test7/paltest_sprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests sprintf_s with wide characters
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_sprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test8_paltest_sprintf_test8, "c_runtime/sprintf_s/test8/paltest_sprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests sprintf_s with decimal numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_sprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_sprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_sprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
* Depends on memcmp and strlen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sprintf_s_test9_paltest_sprintf_test9, "c_runtime/sprintf_s/test9/paltest_sprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sprintf_s
-Name = Positive Test for sprintf_s
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests sprintf_s with integer numbers
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_sqrt_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sqrt_test1 coreclrpal)
-
-target_link_libraries(paltest_sqrt_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * sqrt_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl sqrt_test1_validate(double value, double expected, double variance)
{
double result = sqrt(value);
}
/**
- * validate
+ * sqrt_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl sqrt_test1_validate_isnan(double value)
{
double result = sqrt(value);
}
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_sqrt_test1_paltest_sqrt_test1, "c_runtime/sqrt/test1/paltest_sqrt_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate(-0.0, -0.0, PAL_EPSILON);
- validate( 0.0, 0.0, PAL_EPSILON);
+ sqrt_test1_validate(-0.0, -0.0, PAL_EPSILON);
+ sqrt_test1_validate( 0.0, 0.0, PAL_EPSILON);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
- validate_isnan(-tests[i].value);
+ sqrt_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
+ sqrt_test1_validate_isnan(-tests[i].value);
}
- validate_isnan(PAL_NAN);
+ sqrt_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sqrt
-Name = Call sqrt on positive values and zero.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the sqrt function on a positive value, a positive value
-= with a decimal and on the maxium possible double value.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_sqrtf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sqrtf_test1 coreclrpal)
-
-target_link_libraries(paltest_sqrtf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * sqrtf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl sqrtf_test1_validate(float value, float expected, float variance)
{
float result = sqrtf(value);
}
/**
- * validate
+ * sqrtf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl sqrtf_test1_validate_isnan(float value)
{
float result = sqrtf(value);
}
}
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_sqrtf_test1_paltest_sqrtf_test1, "c_runtime/sqrtf/test1/paltest_sqrtf_test1")
{
struct test tests[] =
{
return FAIL;
}
- validate(-0.0f, -0.0f, PAL_EPSILON);
- validate( 0.0f, 0.0f, PAL_EPSILON);
+ sqrtf_test1_validate(-0.0f, -0.0f, PAL_EPSILON);
+ sqrtf_test1_validate( 0.0f, 0.0f, PAL_EPSILON);
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate(tests[i].value, tests[i].expected, tests[i].variance);
- validate_isnan(-tests[i].value);
+ sqrtf_test1_validate(tests[i].value, tests[i].expected, tests[i].variance);
+ sqrtf_test1_validate_isnan(-tests[i].value);
}
- validate_isnan(PAL_NAN);
+ sqrtf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sqrtf
-Name = Call sqrtf on positive values and zero.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the sqrtf function on a positive value, a positive value
-= with a decimal and on the maxium possible float value.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __SSCANF_S_H__
#define __SSCANF_S_H__
-void DoVoidTest(char *inputstr, const char *formatstr)
+inline void DoVoidTest_scanf_s(char *inputstr, const char *formatstr)
{
char buf[256] = { 0 };
int i;
}
}
+#define DoVoidTest DoVoidTest_scanf_s
-void DoStrTest(char *inputstr, const char *formatstr, const char *checkstr)
+inline void DoStrTest_scanf_s(char *inputstr, const char *formatstr, const char *checkstr)
{
char buf[256] = { 0 };
int ret;
}
}
+#define DoStrTest DoStrTest_scanf_s
-void DoWStrTest(char *inputstr, const char *formatstr, const WCHAR *checkstr)
+inline void DoWStrTest_scanf_s(char *inputstr, const char *formatstr, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
int ret;
}
}
+#define DoWStrTest DoWStrTest_scanf_s
-void DoNumTest(char *inputstr, const char *formatstr, int checknum)
+inline void DoNumTest_scanf_s(char *inputstr, const char *formatstr, int checknum)
{
int num;
int ret;
"Expected %d, got %d.\n", inputstr, formatstr, checknum, num);
}
}
+#define DoNumTest DoNumTest_scanf_s
-void DoShortNumTest(char *inputstr, const char *formatstr, short checknum)
+inline void DoShortNumTest_scanf_s(char *inputstr, const char *formatstr, short checknum)
{
short num;
int ret;
"Expected %hd, got %hd.\n", inputstr, formatstr, checknum, num);
}
}
+#define DoShortNumTest DoShortNumTest_scanf_s
-void DoI64NumTest(char *inputstr, const char *formatstr, INT64 checknum)
+inline void DoI64NumTest_scanf_s(char *inputstr, const char *formatstr, INT64 checknum)
{
char buf[256];
char check[256];
"Expected %s, got %s.\n", inputstr, formatstr, check, buf);
}
}
+#define DoI64NumTest DoI64NumTest_scanf_s
-void DoCharTest(char *inputstr, const char *formatstr, char* checkchars, int numchars)
+inline void DoCharTest_scanf_s(char *inputstr, const char *formatstr, char* checkchars, int numchars)
{
char buf[256];
int ret;
numchars);
}
}
+#define DoCharTest DoCharTest_scanf_s
-void DoWCharTest(char *inputstr, const char *formatstr, WCHAR* checkchars, int numchars)
+inline void DoWCharTest_scanf_s(char *inputstr, const char *formatstr, WCHAR* checkchars, int numchars)
{
WCHAR buf[256];
int ret;
numchars);
}
}
+#define DoWCharTest DoWCharTest_scanf_s
-
-void DoFloatTest(char *inputstr, const char *formatstr, float checkval)
+inline void DoFloatTest_scanf_s(char *inputstr, const char *formatstr, float checkval)
{
char buf[256] = { 0 };
float val;
}
}
-
+#define DoFloatTest DoFloatTest_scanf_s
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_sscanf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test1 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test1_paltest_sscanf_test1, "c_runtime/sscanf_s/test1/paltest_sscanf_test1")
{
int num;
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test of sscanf_s
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_sscanf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test10 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test10
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test10_paltest_sscanf_test10, "c_runtime/sscanf_s/test10/paltest_sscanf_test10")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests sscanf_s with wide characters
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_sscanf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test11 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test11
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test11_paltest_sscanf_test11, "c_runtime/sscanf_s/test11/paltest_sscanf_test11")
{
if (PAL_Initialize(argc, argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests sscanf_s with strings
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_sscanf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test12 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test12
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test12_paltest_sscanf_test12, "c_runtime/sscanf_s/test12/paltest_sscanf_test12")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests sscanf_s with wide strings
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_sscanf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test13 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test13
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test13_paltest_sscanf_test13, "c_runtime/sscanf_s/test13/paltest_sscanf_test13")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests sscanf_s with floats (decimal notation)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_sscanf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test14 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test14
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test14_paltest_sscanf_test14, "c_runtime/sscanf_s/test14/paltest_sscanf_test14")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests sscanf_s with floats (exponential notation, lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_sscanf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test15 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test15
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test15_paltest_sscanf_test15, "c_runtime/sscanf_s/test15/paltest_sscanf_test15")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests sscanf_s with floats (exponential notation, uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_sscanf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test16 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test16
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test16_paltest_sscanf_test16, "c_runtime/sscanf_s/test16/paltest_sscanf_test16")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests sscanf_s with floats (compact notation, lowercase)
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_sscanf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test17 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test17
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test17_paltest_sscanf_test17, "c_runtime/sscanf_s/test17/paltest_sscanf_test17")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests sscanf_s with floats (compact notation, uppercase)
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_sscanf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test2 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* feed), even if it says it only wants spaces tabs and newlines.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test2_paltest_sscanf_test2, "c_runtime/sscanf_s/test2/paltest_sscanf_test2")
{
if (PAL_Initialize(argc, argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to see if sscanf_s handles whitespace correctly
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_sscanf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test3 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test3_paltest_sscanf_test3, "c_runtime/sscanf_s/test3/paltest_sscanf_test3")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests sscanf_s with bracketed set strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_sscanf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test4 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test4_paltest_sscanf_test4, "c_runtime/sscanf_s/test4/paltest_sscanf_test4")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests sscanf_s with decimal numbers
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_sscanf_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test5 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test5_paltest_sscanf_test5, "c_runtime/sscanf_s/test5/paltest_sscanf_test5")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests sscanf_s with integer numbers
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_sscanf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test6 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test6_paltest_sscanf_test6, "c_runtime/sscanf_s/test6/paltest_sscanf_test6")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests sscanf_s with octal numbers
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_sscanf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test7 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test7_paltest_sscanf_test7, "c_runtime/sscanf_s/test7/paltest_sscanf_test7")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests sscanf_s with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_sscanf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test8 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test8
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test8_paltest_sscanf_test8, "c_runtime/sscanf_s/test8/paltest_sscanf_test8")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests sscanf_s with unsigned numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_sscanf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_sscanf_test9 coreclrpal)
-
-target_link_libraries(paltest_sscanf_test9
- ${COMMON_TEST_LIBRARIES}
-)
#include "../sscanf_s.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_sscanf_s_test9_paltest_sscanf_test9, "c_runtime/sscanf_s/test9/paltest_sscanf_test9")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section =C Runtime
-Function = sscanf_s
-Name = Positive Test for sscanf_s
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests sscanf_s with characters
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strcat_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strcat_test1 coreclrpal)
-
-target_link_libraries(paltest_strcat_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strcat_test1_paltest_strcat_test1, "c_runtime/strcat/test1/paltest_strcat_test1")
{
char dest[80];
char *test = "foo bar baz";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strcat
-Name = Test #1 for strcat
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Concatenate three strings into one string. Each time, check to ensure
-= the pointer returned was what we expected. When finished, compare the
-= newly formed string to what it should be to ensure no characters were
-= lost.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strchr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strchr_test1 coreclrpal)
-
-target_link_libraries(paltest_strchr_test1
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strchr_test1_paltest_strchr_test1, "c_runtime/strchr/test1/paltest_strchr_test1")
{
int i = 0;
char *result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strchr
-Name = Test #1 for strchr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test this on a character which is in a string, and ensure the pointer
-= points to that character. Then check the string for the null character,
-= which the return pointer should point to. Then search for a character not
-= in the string and check that the return value is NULL.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strcmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strcmp_test1 coreclrpal)
-
-target_link_libraries(paltest_strcmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
char string2[50];
} testCase;
-testCase testCases[]=
+PALTEST(c_runtime_strcmp_test1_paltest_strcmp_test1, "c_runtime/strcmp/test1/paltest_strcmp_test1")
{
- {0,"Hello","Hello"},
- {1,"hello","Hello"},
- {-1,"Hello","hello"},
- {0,"0Test","0Test"},
- {0,"***???","***???"},
- {0,"Testing the string for string comparison","Testing the string for "
- "string comparison"},
- {-1,"Testing the string for string comparison","Testing the string for "
- "string comparsioa"},
- {1,"Testing the string for string comparison","Testing the string for "
- "comparison"},
- {-1,"aaaabbbbb","aabcdefeccg"}
-};
+ testCase testCases[]=
+ {
+ {0,"Hello","Hello"},
+ {1,"hello","Hello"},
+ {-1,"Hello","hello"},
+ {0,"0Test","0Test"},
+ {0,"***???","***???"},
+ {0,"Testing the string for string comparison","Testing the string for "
+ "string comparison"},
+ {-1,"Testing the string for string comparison","Testing the string for "
+ "string comparsioa"},
+ {1,"Testing the string for string comparison","Testing the string for "
+ "comparison"},
+ {-1,"aaaabbbbb","aabcdefeccg"}
+ };
-int __cdecl main(int argc, char *argv[])
-{
int i = 0;
int result = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strcmp
-Name = Test #1 for strcmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Compare a number of different strings against each other, ensure that the
-= three return values are given at the appropriate times.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strcpy_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strcpy_test1 coreclrpal)
-
-target_link_libraries(paltest_strcpy_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strcpy_test1_paltest_strcpy_test1, "c_runtime/strcpy/test1/paltest_strcpy_test1")
{
char dest[80];
char *result = "foo";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strcpy
-Name = Test #1 for strcpy
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Call the function to copy into an empty buffer. Check that the return value
-= is pointing at the destination buffer. Also compare the string copied to
-= the origional string, to ensure they are the same.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strcspn_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strcspn_test1 coreclrpal)
-
-target_link_libraries(paltest_strcspn_test1
- ${COMMON_TEST_LIBRARIES}
-)
char *string2;
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strcspn_test1_paltest_strcspn_test1, "c_runtime/strcspn/test1/paltest_strcspn_test1")
{
int i=0;
long TheResult = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strcspn
-Name = Test #1 for strcspn
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests strcspn with a character set that should give an index into
-=the middle of the original string. Also tests with character sets
-=that are not in the string at all, and character sets that match
-=with the very first character.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strlen_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strlen_test1 coreclrpal)
-
-target_link_libraries(paltest_strlen_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strlen_test1_paltest_strlen_test1, "c_runtime/strlen/test1/paltest_strlen_test1")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strlen
-Name = Positive Test for strlen
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Check the length of a string and the length of a 0 character string to
-= see that this function returns the correct values for each.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strncat_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strncat_test1 coreclrpal)
-
-target_link_libraries(paltest_strncat_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strncat_test1_paltest_strncat_test1, "c_runtime/strncat/test1/paltest_strncat_test1")
{
char dest[80];
char *test = "foo barbaz";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strncat
-Name = Test #1 for strncat
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Concatenate a few strings together, setting different lengths to be
-= used for each one. Check to ensure the pointers which are returned are
-= correct, and that the final string is what was expected.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strncmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strncmp_test1 coreclrpal)
-
-target_link_libraries(paltest_strncmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
int number;
} testCase;
-testCase testCases[]=
+PALTEST(c_runtime_strncmp_test1_paltest_strncmp_test1, "c_runtime/strncmp/test1/paltest_strncmp_test1")
{
- {0,"Hello","Hello",5},
- {1,"hello","Hello",3},
- {-1,"Hello","hello",5},
- {0,"heLLo","heLLo",5},
- {1,"hello","heLlo",5},
- {-1,"heLlo","hello",5},
- {0,"0Test","0Test",5},
- {0,"***???","***???",6},
- {0,"Testing the string for string comparison","Testing the string for "
- "string comparison",40},
- {-1,"Testing the string for string comparison","Testing the string for "
- "string comparsioa",40},
- {1,"Testing the string for string comparison","Testing the string for "
- "comparison",34},
- {0,"aaaabbbbb","aabcdefeccg",2},
- {0,"abcd","abcd",10}
-};
-
+ testCase testCases[]=
+ {
+ {0,"Hello","Hello",5},
+ {1,"hello","Hello",3},
+ {-1,"Hello","hello",5},
+ {0,"heLLo","heLLo",5},
+ {1,"hello","heLlo",5},
+ {-1,"heLlo","hello",5},
+ {0,"0Test","0Test",5},
+ {0,"***???","***???",6},
+ {0,"Testing the string for string comparison","Testing the string for "
+ "string comparison",40},
+ {-1,"Testing the string for string comparison","Testing the string for "
+ "string comparsioa",40},
+ {1,"Testing the string for string comparison","Testing the string for "
+ "comparison",34},
+ {0,"aaaabbbbb","aabcdefeccg",2},
+ {0,"abcd","abcd",10}
+ };
-int __cdecl main(int argc, char *argv[])
-{
int i=0;
int iresult=0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strncmp
-Name = Test #1 for strncmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test to ensure all three possible return values are given under the
-= appropriate circumstance. Also, uses different sizes, to only compare
-= portions of strings, checking to make sure these return the correct value.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strncpy_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strncpy_test1 coreclrpal)
-
-target_link_libraries(paltest_strncpy_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strncpy_test1_paltest_strncpy_test1, "c_runtime/strncpy/test1/paltest_strncpy_test1")
{
char dest[80];
char *result = "foobar";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strncpy
-Name = Test #1 for strncpy
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test to see that you can copy a portion of a string into a new buffer.
-= Also check that the strncpy function doesn't overflow when it is used.
-= Finally check that if the number of characters given is greater than the
-= amount to copy, that the destination buffer is padded with NULLs.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strpbrk_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strpbrk_test1 coreclrpal)
-
-target_link_libraries(paltest_strpbrk_test1
- ${COMMON_TEST_LIBRARIES}
-)
char *string2;
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strpbrk_test1_paltest_strpbrk_test1, "c_runtime/strpbrk/test1/paltest_strpbrk_test1")
{
char *ptr = NULL;
int i = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strpbrk
-Name = Test #1 for strpbrk
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Search a string for characters in a given character set and ensure the
-= pointer returned points to the first occurrence. Check to see that the
-= function returns NULL if the character is not found.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strrchr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strrchr_test1 coreclrpal)
-
-target_link_libraries(paltest_strrchr_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strrchr_test1_paltest_strrchr_test1, "c_runtime/strrchr/test1/paltest_strrchr_test1")
{
char *str = "foo bar baz";
char *ptr;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strrchr
-Name = Test #1 for strrchr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Search a string for a given character. Search for a character contained
-= in the string, and ensure the pointer returned points to it. Then search
-= for the null character, and ensure the pointer points to that. Finally
-= search for a character which is not in the string and ensure that it
-= returns NULL.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strspn_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strspn_test1 coreclrpal)
-
-target_link_libraries(paltest_strspn_test1
- ${COMMON_TEST_LIBRARIES}
-)
char *string2;
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strspn_test1_paltest_strspn_test1, "c_runtime/strspn/test1/paltest_strspn_test1")
{
int i=0;
long TheResult = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strspn
-Name = Test #1 for strspn
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Check a character set against a string to see that the function returns
-= the length of the substring which consists of all characters in the string.
-= Also check that if the character set doesn't match the string at all, that
-= the value is 0.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strstr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strstr_test1 coreclrpal)
-
-target_link_libraries(paltest_strstr_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strstr_test1_paltest_strstr_test1, "c_runtime/strstr/test1/paltest_strstr_test1")
{
int i=0;
char *ptr=NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strstr
-Name = Positive Test for strstr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Check three cases of searching for a string within a string. First when
-= the string is contained, check that the pointer returned points to it.
-= Then when it isn't contained, ensure it returns null. And when the string
-= we're searching for is empty, it should return a pointer to the string
-= we're searching through.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strtod_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strtod_test1 coreclrpal)
-
-target_link_libraries(paltest_strtod_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_strtod_test1_paltest_strtod_test1, "c_runtime/strtod/test1/paltest_strtod_test1")
{
char * endptr;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strtod
-Name = Positive Test for strtod
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Purpose: Tests the PAL implementation of the strtod function.
-= Convert a number of strings to doubles. Ensure they convert correctly.
-
-
-
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_strtod_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_strtod_test2 coreclrpal)
-
-target_link_libraries(paltest_strtod_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_strtod_test2_paltest_strtod_test2, "c_runtime/strtod/test2/paltest_strtod_test2")
{
/* Representation of positive infinty for a IEEE 64-bit double */
INT64 PosInifity = (INT64)(0x7ff00000) << 32;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strtod
-Name = Negative test for strtod with overflows
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test strtod with overflows.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strtok_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strtok_test1 coreclrpal)
-
-target_link_libraries(paltest_strtok_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_strtok_test1_paltest_strtok_test1, "c_runtime/strtok/test1/paltest_strtok_test1")
{
char str[] = "foo bar baz";
char *result1= "foo \0ar baz";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strtok
-Name = Test #1 for strtok
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Search for a number of tokens within strings. Check that the return values
-= are what is expect, and also that the strings match up with our expected
-= results.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_strtoul_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_strtoul_test1 coreclrpal)
-
-target_link_libraries(paltest_strtoul_test1
- ${COMMON_TEST_LIBRARIES}
-)
ULONG result;
} TestCase;
-TestCase TestCases[] =
+PALTEST(c_runtime_strtoul_test1_paltest_strtoul_test1, "c_runtime/strtoul/test1/paltest_strtoul_test1")
{
- { teststr1, teststr1 + 3, 4, 27},
- { teststr1, teststr1 + 5, 10, 12345},
- { teststr2, teststr2, 10, 0},
- { teststr3, teststr3+10, 10, 4294967295ul},
- { teststr4, teststr4+10, 10, 4294967295ul}
-};
-
-int NumCases = sizeof(TestCases) / sizeof(TestCases[0]);
+ TestCase TestCases[] =
+ {
+ { teststr1, teststr1 + 3, 4, 27},
+ { teststr1, teststr1 + 5, 10, 12345},
+ { teststr2, teststr2, 10, 0},
+ { teststr3, teststr3+10, 10, 4294967295ul},
+ { teststr4, teststr4+10, 10, 4294967295ul}
+ };
+ int NumCases = sizeof(TestCases) / sizeof(TestCases[0]);
-int __cdecl main(int argc, char *argv[])
-{
char *end;
ULONG l;
int i;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = strtoul
-Name = Test #1 for strtoul
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests stroul with different bases and overflows, as well as valid input.
-= Makes sure that the end pointer is correct.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __SWPRINTF_H__
#define __SWPRINTF_H__
-void DoWStrTest(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
+inline void DoWStrTest_swprintf_s(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoWStrTest DoWStrTest_swprintf_s
-void DoStrTest(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
+inline void DoStrTest_swprintf_s(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoStrTest DoStrTest_swprintf_s
-void DoPointerTest(const WCHAR *formatstr, void* param, const WCHAR *checkstr1)
+inline void DoPointerTest_swprintf_s(const WCHAR *formatstr, void* param, const WCHAR *checkstr1)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr1), convertC(buf));
}
}
+#define DoPointerTest DoPointerTest_swprintf_s
-void DoCharTest(const WCHAR *formatstr, char param, const WCHAR *checkstr)
+inline void DoCharTest_swprintf_s(const WCHAR *formatstr, char param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr), convertC(buf));
}
}
+#define DoCharTest DoCharTest_swprintf_s
-void DoWCharTest(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
+inline void DoWCharTest_swprintf_s(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr), convertC(buf));
}
}
+#define DoWCharTest DoWCharTest_swprintf_s
-void DoNumTest(const WCHAR *formatstr, int value, const WCHAR *checkstr)
+inline void DoNumTest_swprintf_s(const WCHAR *formatstr, int value, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoNumTest DoNumTest_swprintf_s
-void DoI64Test(const WCHAR *formatstr, INT64 param, char *paramdesc,
+inline void DoI64Test_swprintf_s(const WCHAR *formatstr, INT64 param, char *paramdesc,
const WCHAR *checkstr1)
{
WCHAR buf[256] = { 0 };
convertC(formatstr), convertC(checkstr1), convertC(buf));
}
}
+#define DoI64Test DoI64Test_swprintf_s
-void DoDoubleTest(const WCHAR *formatstr, double value, const WCHAR *checkstr1,
+inline void DoDoubleTest_swprintf_s(const WCHAR *formatstr, double value, const WCHAR *checkstr1,
const WCHAR *checkstr2)
{
WCHAR buf[256] = { 0 };
convertC(checkstr2), convertC(buf));
}
}
+#define DoDoubleTest DoDoubleTest_swprintf_s
-void DoArgumentPrecTest(const WCHAR *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_swprintf_s(const WCHAR *formatstr, int precision, void *param,
char *paramstr, const WCHAR *checkstr1, const WCHAR *checkstr2)
{
WCHAR buf[256];
convertC(checkstr1), convertC(checkstr2), convertC(buf));
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_swprintf_s
-void DoArgumentPrecDoubleTest(const WCHAR *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_swprintf_s(const WCHAR *formatstr, int precision, double param,
const WCHAR *checkstr1, const WCHAR *checkstr2)
{
WCHAR buf[256];
convertC(checkstr1), convertC(checkstr2), convertC(buf));
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_swprintf_s
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_swprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test1_paltest_swprintf_test1, "c_runtime/swprintf/test1/paltest_swprintf_test1")
{
WCHAR *checkstr;
WCHAR buf[256];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if swprintf works correctly
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_swprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test10_paltest_swprintf_test10, "c_runtime/swprintf/test10/paltest_swprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests swprintf with octal numbers
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_swprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test11_paltest_swprintf_test11, "c_runtime/swprintf/test11/paltest_swprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests swprintf with unsigned numbers
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_swprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test12_paltest_swprintf_test12, "c_runtime/swprintf/test12/paltest_swprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests swprintf with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_swprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test13_paltest_swprintf_test13, "c_runtime/swprintf/test13/paltest_swprintf_test13")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests swprintf with hex numbers (uppercase)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_swprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test14_paltest_swprintf_test14, "c_runtime/swprintf/test14/paltest_swprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests swprintf with exponential format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_swprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test15_paltest_swprintf_test15, "c_runtime/swprintf/test15/paltest_swprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests swprintf with exponential format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_swprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test16_paltest_swprintf_test16, "c_runtime/swprintf/test16/paltest_swprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests swprintf with decimal point format doubles
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_swprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test17_paltest_swprintf_test17, "c_runtime/swprintf/test17/paltest_swprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests swprintf with compact format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_swprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test18_paltest_swprintf_test18, "c_runtime/swprintf/test18/paltest_swprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests swprintf with compact format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_swprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test19_paltest_swprintf_test19, "c_runtime/swprintf/test19/paltest_swprintf_test19")
{
int n = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests swprintf with argument specified precision
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_swprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test2_paltest_swprintf_test2, "c_runtime/swprintf/test2/paltest_swprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests swprintf with strings
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_swprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test3_paltest_swprintf_test3, "c_runtime/swprintf/test3/paltest_swprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests swprintf with wide strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_swprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test4_paltest_swprintf_test4, "c_runtime/swprintf/test4/paltest_swprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests swprintf with pointers
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_swprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test6_paltest_swprintf_test6, "c_runtime/swprintf/test6/paltest_swprintf_test6")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests swprintf with characters
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_swprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test7_paltest_swprintf_test7, "c_runtime/swprintf/test7/paltest_swprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests swprintf with wide characters
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_swprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test8_paltest_swprintf_test8, "c_runtime/swprintf/test8/paltest_swprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests swprintf with decimal numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_swprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_swprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_swprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swprintf_test9_paltest_swprintf_test9, "c_runtime/swprintf/test9/paltest_swprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swprintf
-Name = Positive Test for swprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests swprintf with integer numbers
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
#ifndef __SWSCANF_H__
#define __SWSCANF_H__
-void DoVoidTest(WCHAR *inputstr, const WCHAR *formatstr)
+inline void DoVoidTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr)
{
char buf[256] = { 0 };
int i;
}
}
+#define DoVoidTest DoVoidTest_swscanf
-void DoStrTest(WCHAR *inputstr, const WCHAR *formatstr, const char *checkstr)
+inline void DoStrTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, const char *checkstr)
{
char buf[256] = { 0 };
int ret;
}
}
+#define DoStrTest DoStrTest_swscanf
-void DoWStrTest(WCHAR *inputstr, const WCHAR *formatstr, const WCHAR *checkstr)
+inline void DoWStrTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
int ret;
}
}
+#define DoWStrTest DoWStrTest_swscanf
-void DoNumTest(WCHAR *inputstr, const WCHAR *formatstr, int checknum)
+inline void DoNumTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, int checknum)
{
int num = 0;
int ret;
convertC(formatstr), checknum, num);
}
}
+#define DoNumTest DoNumTest_swscanf
-void DoShortNumTest(WCHAR *inputstr, const WCHAR *formatstr, short checknum)
+inline void DoShortNumTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, short checknum)
{
short num = 0;
int ret;
convertC(formatstr), checknum, num);
}
}
+#define DoShortNumTest DoShortNumTest_swscanf
-void DoI64NumTest(WCHAR *inputstr, const WCHAR *formatstr, INT64 checknum)
+inline void DoI64NumTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, INT64 checknum)
{
char buf[256];
char check[256];
convertC(formatstr), check, buf);
}
}
+#define DoI64NumTest DoI64NumTest_swscanf
-void DoCharTest(WCHAR *inputstr, const WCHAR *formatstr, char* checkchars, int numchars)
+inline void DoCharTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, char* checkchars, int numchars)
{
char buf[256];
int ret;
convertC(inputstr), convertC(formatstr), numchars);
}
}
+#define DoCharTest DoCharTest_swscanf
-void DoWCharTest(WCHAR *inputstr, const WCHAR *formatstr, const WCHAR *checkchars, int numchars)
+inline void DoWCharTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, const WCHAR *checkchars, int numchars)
{
WCHAR buf[256];
int ret;
convertC(inputstr), convertC(formatstr), numchars);
}
}
+#define DoWCharTest DoWCharTest_swscanf
-
-void DoFloatTest(WCHAR *inputstr, const WCHAR *formatstr, float checkval)
+inline void DoFloatTest_swscanf(WCHAR *inputstr, const WCHAR *formatstr, float checkval)
{
char buf[256] = { 0 };
float val;
}
}
-
+#define DoFloatTest DoFloatTest_swscanf
#endif
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_swscanf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test1 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test1_paltest_swscanf_test1, "c_runtime/swscanf/test1/paltest_swscanf_test1")
{
int num;
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test of swscanf
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_swscanf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test10 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test10
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test10_paltest_swscanf_test10, "c_runtime/swscanf/test10/paltest_swscanf_test10")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests swscanf with wide characters
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_swscanf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test11 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test11
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test11_paltest_swscanf_test11, "c_runtime/swscanf/test11/paltest_swscanf_test11")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests swscanf with strings
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_swscanf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test12 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test12
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test12_paltest_swscanf_test12, "c_runtime/swscanf/test12/paltest_swscanf_test12")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests swscanf with wide strings
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_swscanf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test13 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test13
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test13_paltest_swscanf_test13, "c_runtime/swscanf/test13/paltest_swscanf_test13")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests swscanf with floats (decimal notation)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_swscanf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test14 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test14
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test14_paltest_swscanf_test14, "c_runtime/swscanf/test14/paltest_swscanf_test14")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests swscanf with floats (exponential notation, lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_swscanf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test15 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test15
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test15_paltest_swscanf_test15, "c_runtime/swscanf/test15/paltest_swscanf_test15")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests swscanf with floats (exponential notation, uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_swscanf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test16 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test16
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test16_paltest_swscanf_test16, "c_runtime/swscanf/test16/paltest_swscanf_test16")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests swscanf with floats (compact notation, lowercase)
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_swscanf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test17 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test17
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test17_paltest_swscanf_test17, "c_runtime/swscanf/test17/paltest_swscanf_test17")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests swscanf with floats (compact notation, uppercase)
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_swscanf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test2 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* feed), even if it says it only wants spaces tabs and newlines.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test2_paltest_swscanf_test2, "c_runtime/swscanf/test2/paltest_swscanf_test2")
{
if (PAL_Initialize(argc, argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to see if swscanf handles whitespace correctly
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_swscanf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test3 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test3_paltest_swscanf_test3, "c_runtime/swscanf/test3/paltest_swscanf_test3")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests swscanf with bracketed set strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_swscanf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test4 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test4_paltest_swscanf_test4, "c_runtime/swscanf/test4/paltest_swscanf_test4")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests swscanf with decimal numbers
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_swscanf_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test5 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test5_paltest_swscanf_test5, "c_runtime/swscanf/test5/paltest_swscanf_test5")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests swscanf with integer numbers
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_swscanf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test6 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test6_paltest_swscanf_test6, "c_runtime/swscanf/test6/paltest_swscanf_test6")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests swscanf with octal numbers
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_swscanf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test7 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test7_paltest_swscanf_test7, "c_runtime/swscanf/test7/paltest_swscanf_test7")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests swscanf with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_swscanf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test8 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test8
- ${COMMON_TEST_LIBRARIES}
-)
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test8_paltest_swscanf_test8, "c_runtime/swscanf/test8/paltest_swscanf_test8")
{
int n65535 = 65535; /* Walkaround compiler strictness */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests swscanf with unsigned numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_swscanf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_swscanf_test9 coreclrpal)
-
-target_link_libraries(paltest_swscanf_test9
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../swscanf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_swscanf_test9_paltest_swscanf_test9, "c_runtime/swscanf/test9/paltest_swscanf_test9")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = swscanf
-Name = Positive Test for swscanf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests swscanf with characters
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_tan_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_tan_test1 coreclrpal)
-
-target_link_libraries(paltest_tan_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * tan_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl tan_test1_validate(double value, double expected, double variance)
{
double result = tan(value);
}
/**
- * validate
+ * tan_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl tan_test1_validate_isnan(double value)
{
double result = tan(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_tan_test1_paltest_tan_test1, "c_runtime/tan/test1/paltest_tan_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ tan_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ tan_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
// -- SPECIAL CASE --
// Normally, tan(pi / 2) would return PAL_POSINF (atan2(PAL_POSINF) does return (pi / 2)).
// However, it seems instead (on all supported systems), we get a different number entirely.
- validate( 1.5707963267948966, 16331239353195370.0, 0);
- validate(-1.5707963267948966, -16331239353195370.0, 0);
+ tan_test1_validate( 1.5707963267948966, 16331239353195370.0, 0);
+ tan_test1_validate(-1.5707963267948966, -16331239353195370.0, 0);
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ tan_test1_validate_isnan(PAL_NEGINF);
+ tan_test1_validate_isnan(PAL_NAN);
+ tan_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = tan
-Name = Positive Test for tan
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to tan() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_tanf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_tanf_test1 coreclrpal)
-
-target_link_libraries(paltest_tanf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * tanf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl tanf_test1_validate(float value, float expected, float variance)
{
float result = tanf(value);
}
/**
- * validate
+ * tanf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl tanf_test1_validate_isnan(float value)
{
float result = tanf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_tanf_test1_paltest_tanf_test1, "c_runtime/tanf/test1/paltest_tanf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ tanf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ tanf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
// -- SPECIAL CASE --
// Normally, tanf(pi / 2) would return PAL_POSINF (atan2f(PAL_POSINF) does return (pi / 2)).
// However, it seems instead (on all supported systems), we get a different number entirely.
- validate( 1.57079633f, -22877332.0, PAL_EPSILON * 100000000);
- validate(-1.57079633f, 22877332.0, PAL_EPSILON * 100000000);
+ tanf_test1_validate( 1.57079633f, -22877332.0, PAL_EPSILON * 100000000);
+ tanf_test1_validate(-1.57079633f, 22877332.0, PAL_EPSILON * 100000000);
- validate_isnan(PAL_NEGINF);
- validate_isnan(PAL_NAN);
- validate_isnan(PAL_POSINF);
+ tanf_test1_validate_isnan(PAL_NEGINF);
+ tanf_test1_validate_isnan(PAL_NAN);
+ tanf_test1_validate_isnan(PAL_POSINF);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = tanf
-Name = Positive Test for tanf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to tanf() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_tanh_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_tanh_test1 coreclrpal)
-
-target_link_libraries(paltest_tanh_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * tanh_test1_validate
*
* test validation function
*/
-void __cdecl validate(double value, double expected, double variance)
+void __cdecl tanh_test1_validate(double value, double expected, double variance)
{
double result = tanh(value);
}
/**
- * validate
+ * tanh_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(double value)
+void __cdecl tanh_test1_validate_isnan(double value)
{
double result = tanh(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_tanh_test1_paltest_tanh_test1, "c_runtime/tanh/test1/paltest_tanh_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ tanh_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ tanh_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ tanh_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = tanh
-Name = Positive Test for tanh
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to tanh() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.c
-)
-
-add_executable(paltest_tanhf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_tanhf_test1 coreclrpal)
-
-target_link_libraries(paltest_tanhf_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
/**
- * validate
+ * tanhf_test1_validate
*
* test validation function
*/
-void __cdecl validate(float value, float expected, float variance)
+void __cdecl tanhf_test1_validate(float value, float expected, float variance)
{
float result = tanhf(value);
}
/**
- * validate
+ * tanhf_test1_validate
*
* test validation function for values returning NaN
*/
-void __cdecl validate_isnan(float value)
+void __cdecl tanhf_test1_validate_isnan(float value)
{
float result = tanhf(value);
*
* executable entry point
*/
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_tanhf_test1_paltest_tanhf_test1, "c_runtime/tanhf/test1/paltest_tanhf_test1")
{
struct test tests[] =
{
for (int i = 0; i < (sizeof(tests) / sizeof(struct test)); i++)
{
- validate( tests[i].value, tests[i].expected, tests[i].variance);
- validate(-tests[i].value, -tests[i].expected, tests[i].variance);
+ tanhf_test1_validate( tests[i].value, tests[i].expected, tests[i].variance);
+ tanhf_test1_validate(-tests[i].value, -tests[i].expected, tests[i].variance);
}
- validate_isnan(PAL_NAN);
+ tanhf_test1_validate_isnan(PAL_NAN);
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = tanhf
-Name = Positive Test for tanhf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Passes to tanhf() a series of angle value, checking that
-= each one return to correct value.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_time_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_time_test1 coreclrpal)
-
-target_link_libraries(paltest_time_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_time_test1_paltest_time_test1, "c_runtime/time/test1/paltest_time_test1")
{
time_t t = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = time
-Name = Positive Test for time
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Calls the time function and verifies that the time returned is at
-= least a positive value.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_tolower_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_tolower_test1 coreclrpal)
-
-target_link_libraries(paltest_tolower_test1
- ${COMMON_TEST_LIBRARIES}
-)
int start;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_tolower_test1_paltest_tolower_test1, "c_runtime/tolower/test1/paltest_tolower_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = tolower
-Name = Positive Test for tolower
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the tolower function.
-= Check that the tolower function makes capital character lower case.
-= Also check that it has no effect on lower case letters and special
-= characters.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_toupper_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_toupper_test1 coreclrpal)
-
-target_link_libraries(paltest_toupper_test1
- ${COMMON_TEST_LIBRARIES}
-)
int start;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_toupper_test1_paltest_toupper_test1, "c_runtime/toupper/test1/paltest_toupper_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = toupper
-Name = Positive Test for toupper
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the toupper function.
-= Check that the toupper function makes lower case character a capital.
-= Also check that it has no effect on upper case letters and special
-= characters.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_towlower_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_towlower_test1 coreclrpal)
-
-target_link_libraries(paltest_towlower_test1
- ${COMMON_TEST_LIBRARIES}
-)
WCHAR start;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_towlower_test1_paltest_towlower_test1, "c_runtime/towlower/test1/paltest_towlower_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = towlower
-Name = Positive Test for towlower
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the towlower function.
-= Check that the tolower function makes capital character lower case.
-= Also check that it has no effect on lower case letters and special
-= characters.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_towupper_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_towupper_test1 coreclrpal)
-
-target_link_libraries(paltest_towupper_test1
- ${COMMON_TEST_LIBRARIES}
-)
WCHAR start;
};
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_towupper_test1_paltest_towupper_test1, "c_runtime/towupper/test1/paltest_towupper_test1")
{
int result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = towupper
-Name = Positive Test for towupper
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the towupper function.
-= Check that the towupper function makes lower case character a capital.
-= Also check that it has no effect on upper case letters and special
-= characters.
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_vfprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../vfprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test1_paltest_vfprintf_test1, "c_runtime/vfprintf/test1/paltest_vfprintf_test1")
{
FILE *fp;
char testfile[] = "testfile.txt";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if vfprintf works correctly
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_vfprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
#include "../vfprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test10_paltest_vfprintf_test10, "c_runtime/vfprintf/test10/paltest_vfprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests vfprintf with octal numbers
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_vfprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../vfprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test11_paltest_vfprintf_test11, "c_runtime/vfprintf/test11/paltest_vfprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests vfprintf with unsigned numbers
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_vfprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
#include "../vfprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test12_paltest_vfprintf_test12, "c_runtime/vfprintf/test12/paltest_vfprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests vfprintf with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_vfprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test13_paltest_vfprintf_test13, "c_runtime/vfprintf/test13/paltest_vfprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests vfprintf with hex numbers (uppercase)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_vfprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test14_paltest_vfprintf_test14, "c_runtime/vfprintf/test14/paltest_vfprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests vfprintf with exponential format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_vfprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test15_paltest_vfprintf_test15, "c_runtime/vfprintf/test15/paltest_vfprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests vfprintf with exponential format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_vfprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test16_paltest_vfprintf_test16, "c_runtime/vfprintf/test16/paltest_vfprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests vfprintf with decimal point format doubles
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_vfprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test17_paltest_vfprintf_test17, "c_runtime/vfprintf/test17/paltest_vfprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests vfprintf with compact format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_vfprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test18_paltest_vfprintf_test18, "c_runtime/vfprintf/test18/paltest_vfprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests vfprintf with compact format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_vfprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test19_paltest_vfprintf_test19, "c_runtime/vfprintf/test19/paltest_vfprintf_test19")
{
int n = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests vfprintf with argument specified precision
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_vfprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test2_paltest_vfprintf_test2, "c_runtime/vfprintf/test2/paltest_vfprintf_test2")
{
if (PAL_Initialize(argc, argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests vfprintf with strings
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_vfprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test3_paltest_vfprintf_test3, "c_runtime/vfprintf/test3/paltest_vfprintf_test3")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests vfprintf with wide strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_vfprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test4_paltest_vfprintf_test4, "c_runtime/vfprintf/test4/paltest_vfprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests vfprintf with pointers
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_vfprintf_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test5 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test5
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test5_paltest_vfprintf_test5, "c_runtime/vfprintf/test5/paltest_vfprintf_test5")
{
char *longStr =
"really-long-string-that-just-keeps-going-on-and-on-and-on.."
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests vfprintf with the count specifier
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_vfprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test6_paltest_vfprintf_test6, "c_runtime/vfprintf/test6/paltest_vfprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests vfprintf with characters
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_vfprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test7_paltest_vfprintf_test7, "c_runtime/vfprintf/test7/paltest_vfprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests vfprintf with wide characters
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_vfprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test8_paltest_vfprintf_test8, "c_runtime/vfprintf/test8/paltest_vfprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests vfprintf with decimal numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_vfprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_vfprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_vfprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vfprintf_test9_paltest_vfprintf_test9, "c_runtime/vfprintf/test9/paltest_vfprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vfprintf
-Name = Positive Test for vfprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests vfprintf with integer numbers
#ifndef __vfprintf_H__
#define __vfprintf_H__
-int DoVfprintf(FILE *fp, const char *format, ...)
+inline int DoVfprintf(FILE *fp, const char *format, ...)
{
int retVal;
va_list arglist;
return (retVal);
}
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_vfprintf(const char *formatstr, char* param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoStrTest DoStrTest_vfprintf
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_vfprintf(const char *formatstr, WCHAR* param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoWStrTest DoWStrTest_vfprintf
-
-void DoPointerTest(const char *formatstr, void* param, char* paramstr,
+inline void DoPointerTest_vfprintf(const char *formatstr, void* param, char* paramstr,
const char *checkstr1)
{
FILE *fp;
Fail("ERROR: fclose failed to close \"testfile.txt\"\n");
}
}
+#define DoPointerTest DoPointerTest_vfprintf
-
-
-void DoCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoCountTest_vfprintf(const char *formatstr, int param, const char *checkstr)
{
FILE *fp;
char buf[512] = { 0 };
Fail("ERROR: fclose failed to close \"testfile.txt\"\n");
}
}
+#define DoCountTest DoCountTest_vfprintf
-void DoShortCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoShortCountTest_vfprintf(const char *formatstr, int param, const char *checkstr)
{
FILE *fp;
char buf[512] = { 0 };
Fail("ERROR: fclose failed to close \"testfile.txt\"\n");
}
}
+#define DoShortCountTest DoShortCountTest_vfprintf
-
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_vfprintf(const char *formatstr, char param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoCharTest DoCharTest_vfprintf
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_vfprintf(const char *formatstr, WCHAR param, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoWCharTest DoWCharTest_vfprintf
-void DoNumTest(const char *formatstr, int value, const char *checkstr)
+inline void DoNumTest_vfprintf(const char *formatstr, int value, const char *checkstr)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoNumTest DoNumTest_vfprintf
-void DoI64Test(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1)
+inline void DoI64Test_vfprintf(const char *formatstr, INT64 value, char *valuestr, const char *checkstr1)
{
FILE *fp;
char buf[256] = { 0 };
}
fclose(fp);
}
+#define DoI64Test DoI64Test_vfprintf
-void DoDoubleTest(const char *formatstr, double value, const char *checkstr1,
+inline void DoDoubleTest_vfprintf(const char *formatstr, double value, const char *checkstr1,
const char *checkstr2)
{
FILE *fp;
}
fclose(fp);
}
+#define DoDoubleTest DoDoubleTest_vfprintf
-
-void DoArgumentPrecTest(const char *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_vfprintf(const char *formatstr, int precision, void *param,
char *paramstr, const char *checkstr1, const char *checkstr2)
{
FILE *fp;
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_vfprintf
-void DoArgumentPrecDoubleTest(const char *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_vfprintf(const char *formatstr, int precision, double param,
const char *checkstr1, const char *checkstr2)
{
FILE *fp;
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_vfprintf
#endif
+++ /dev/null
-# This test fails to build on ARM
-#add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_vprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../vprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test1_paltest_vprintf_test1, "c_runtime/vprintf/test1/paltest_vprintf_test1")
{
char checkstr[] = "hello world";
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if vprintf works correctly
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_vprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
#include "../vprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test10_paltest_vprintf_test10, "c_runtime/vprintf/test10/paltest_vprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests vprintf with octal numbers
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_vprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../vprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test11_paltest_vprintf_test11, "c_runtime/vprintf/test11/paltest_vprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests vprintf with unsigned numbers
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_vprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
#include "../vprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test12_paltest_vprintf_test12, "c_runtime/vprintf/test12/paltest_vprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests vprintf with hex numbers (lowercase)
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_vprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test13_paltest_vprintf_test13, "c_runtime/vprintf/test13/paltest_vprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests vprintf with hex numbers (uppercase)
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_vprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test14_paltest_vprintf_test14, "c_runtime/vprintf/test14/paltest_vprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests vprintf with exponential format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_vprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test15_paltest_vprintf_test15, "c_runtime/vprintf/test15/paltest_vprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests vprintf with exponential format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_vprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test16_paltest_vprintf_test16, "c_runtime/vprintf/test16/paltest_vprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests vprintf with decimal point format doubles
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_vprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test17_paltest_vprintf_test17, "c_runtime/vprintf/test17/paltest_vprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests vprintf with compact format doubles (lowercase)
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_vprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test18_paltest_vprintf_test18, "c_runtime/vprintf/test18/paltest_vprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests vprintf with compact format doubles (uppercase)
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_vprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test19_paltest_vprintf_test19, "c_runtime/vprintf/test19/paltest_vprintf_test19")
{
int n = -1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests vprintf with argument specified precision
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_vprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test2_paltest_vprintf_test2, "c_runtime/vprintf/test2/paltest_vprintf_test2")
{
if (PAL_Initialize(argc, argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests vprintf with strings
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_vprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test3_paltest_vprintf_test3, "c_runtime/vprintf/test3/paltest_vprintf_test3")
{
if (PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests vprintf with wide strings
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_vprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test4_paltest_vprintf_test4, "c_runtime/vprintf/test4/paltest_vprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests vprintf with pointers
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_vprintf_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test5 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test5
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test5_paltest_vprintf_test5, "c_runtime/vprintf/test5/paltest_vprintf_test5")
{
char *longStr =
"really-long-string-that-just-keeps-going-on-and-on-and-on.."
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests vprintf with the count specifier
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_vprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test6_paltest_vprintf_test6, "c_runtime/vprintf/test6/paltest_vprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests vprintf with characters
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_vprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test7_paltest_vprintf_test7, "c_runtime/vprintf/test7/paltest_vprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests vprintf with wide characters
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_vprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test8_paltest_vprintf_test8, "c_runtime/vprintf/test8/paltest_vprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests vprintf with decimal numbers
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_vprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_vprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_vprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vprintf_test9_paltest_vprintf_test9, "c_runtime/vprintf/test9/paltest_vprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vprintf
-Name = Positive Test for vprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests vprintf with integer numbers
#ifndef __vprintf_H__
#define __vprintf_H__
-int DoVprintf(const char *format, ...)
+inline int DoVprintf(const char *format, ...)
{
int retVal;
va_list arglist;
return (retVal);
}
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_vprintf(const char *formatstr, char* param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoStrTest DoStrTest_vprintf
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_vprintf(const char *formatstr, WCHAR* param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoWStrTest DoWStrTest_vprintf
-void DoPointerTest(const char *formatstr, void* param, char* paramstr,
+inline void DoPointerTest_vprintf(const char *formatstr, void* param, char* paramstr,
const char *checkstr1)
{
int ret;
strlen(checkstr1), ret);
}
}
+#define DoPointerTest DoPointerTest_vprintf
-void DoCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoCountTest_vprintf(const char *formatstr, int param, const char *checkstr)
{
int ret;
int n = -1;
strlen(checkstr), ret);
}
}
+#define DoCountTest DoCountTest_vprintf
-void DoShortCountTest(const char *formatstr, int param, const char *checkstr)
+inline void DoShortCountTest_vprintf(const char *formatstr, int param, const char *checkstr)
{
int ret;
short int n = -1;
strlen(checkstr), ret);
}
}
+#define DoShortCountTest DoShortCountTest_vprintf
-
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_vprintf(const char *formatstr, char param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoCharTest DoCharTest_vprintf
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_vprintf(const char *formatstr, WCHAR param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoWCharTest DoWCharTest_vprintf
-void DoNumTest(const char *formatstr, int param, const char *checkstr)
+inline void DoNumTest_vprintf(const char *formatstr, int param, const char *checkstr)
{
int ret;
strlen(checkstr), ret);
}
}
+#define DoNumTest DoNumTest_vprintf
-void DoI64Test(const char *formatstr, INT64 param, char *valuestr, const char *checkstr1)
+inline void DoI64Test_vprintf(const char *formatstr, INT64 param, char *valuestr, const char *checkstr1)
{
int ret;
strlen(checkstr1), ret);
}
}
+#define DoI64Test DoI64Test_vprintf
-void DoDoubleTest(const char *formatstr, double param, const char *checkstr1,
+inline void DoDoubleTest_vprintf(const char *formatstr, double param, const char *checkstr1,
const char *checkstr2)
{
int ret;
strlen(checkstr1), strlen(checkstr2), ret);
}
}
+#define DoDoubleTest DoDoubleTest_vprintf
-void DoArgumentPrecTest(const char *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_vprintf(const char *formatstr, int precision, void *param,
char *paramstr, const char *checkstr1, const char *checkstr2)
{
int ret;
strlen(checkstr1), strlen(checkstr2), ret);
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_vprintf
-void DoArgumentPrecDoubleTest(const char *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_vprintf(const char *formatstr, int precision, double param,
const char *checkstr1, const char *checkstr2)
{
int ret;
strlen(checkstr1), strlen(checkstr2), ret);
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_vprintf
#endif
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_vsprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test1_paltest_vsprintf_test1, "c_runtime/vsprintf/test1/paltest_vsprintf_test1")
{
char checkstr[] = "hello world";
char buf[256] = { 0 };
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the vsprintf function.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_vsprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test10_paltest_vsprintf_test10, "c_runtime/vsprintf/test10/paltest_vsprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with octal numbers.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_vsprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test11_paltest_vsprintf_test11, "c_runtime/vsprintf/test11/paltest_vsprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with unsigned numbers.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_vsprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test12_paltest_vsprintf_test12, "c_runtime/vsprintf/test12/paltest_vsprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with hex numbers (lowercase).
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_vsprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test13_paltest_vsprintf_test13, "c_runtime/vsprintf/test13/paltest_vsprintf_test13")
{
int neg = -42;
int pos = 0x1234AB;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with hex numbers (uppercase).
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_vsprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test14_paltest_vsprintf_test14, "c_runtime/vsprintf/test14/paltest_vsprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with exponential format doubles (lowercase).
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_vsprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test15_paltest_vsprintf_test15, "c_runtime/vsprintf/test15/paltest_vsprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with exponential format doubles (uppercase).
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_vsprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test16_paltest_vsprintf_test16, "c_runtime/vsprintf/test16/paltest_vsprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with decimal point format doubles.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_vsprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test17_paltest_vsprintf_test17, "c_runtime/vsprintf/test17/paltest_vsprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with compact format doubles (lowercase).
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_vsprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test18_paltest_vsprintf_test18, "c_runtime/vsprintf/test18/paltest_vsprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with compact format doubles (uppercase).
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_vsprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test19_paltest_vsprintf_test19, "c_runtime/vsprintf/test19/paltest_vsprintf_test19")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with argument specified precision.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_vsprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test2_paltest_vsprintf_test2, "c_runtime/vsprintf/test2/paltest_vsprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with strings.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_vsprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test3_paltest_vsprintf_test3, "c_runtime/vsprintf/test3/paltest_vsprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with wide strings.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_vsprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test4_paltest_vsprintf_test4, "c_runtime/vsprintf/test4/paltest_vsprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with pointers.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_vsprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: memcmp is used, as is strlen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test6_paltest_vsprintf_test6, "c_runtime/vsprintf/test6/paltest_vsprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with characters.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_vsprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test7_paltest_vsprintf_test7, "c_runtime/vsprintf/test7/paltest_vsprintf_test7")
{
WCHAR wb = (WCHAR) 'b';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with wide characters.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_vsprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test8_paltest_vsprintf_test8, "c_runtime/vsprintf/test8/paltest_vsprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with decimal numbers.
-= This test is modeled after _snprintf.
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_vsprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_vsprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_vsprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vsprintf_test9_paltest_vsprintf_test9, "c_runtime/vsprintf/test9/paltest_vsprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vsprintf
-Name = Positive Test for vsprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests the PAL implementation of the vsprintf function.
-= Tests vsprintf with integer numbers.
-= This test is modeled after _snprintf.
#define __VSPRINTF_H__
/* These functions leaks memory a lot. C'est la vie. */
-int testvsp(char* buf, size_t buffSize, const char* format, ...)
+inline int testvsp(char* buf, size_t buffSize, const char* format, ...)
{
int retVal;
va_list arglist;
return (retVal);
}
-void DoStrTest(const char *formatstr, char* param, const char *checkstr)
+inline void DoStrTest_vsprintf(const char *formatstr, char* param, const char *checkstr)
{
char buf[256] = { 0 };
param, formatstr, checkstr, buf);
}
}
+#define DoStrTest DoStrTest_vsprintf
-void DoWStrTest(const char *formatstr, WCHAR* param, const char *checkstr)
+inline void DoWStrTest_vsprintf(const char *formatstr, WCHAR* param, const char *checkstr)
{
char buf[256] = { 0 };
convertC(param), formatstr, checkstr, buf);
}
}
+#define DoWStrTest DoWStrTest_vsprintf
-
-void DoCharTest(const char *formatstr, char param, const char *checkstr)
+inline void DoCharTest_vsprintf(const char *formatstr, char param, const char *checkstr)
{
char buf[256] = { 0 };
param, param, formatstr, checkstr, buf);
}
}
+#define DoCharTest DoCharTest_vsprintf
-void DoWCharTest(const char *formatstr, WCHAR param, const char *checkstr)
+inline void DoWCharTest_vsprintf(const char *formatstr, WCHAR param, const char *checkstr)
{
char buf[256] = { 0 };
(char)param, param, formatstr, checkstr, buf);
}
}
+#define DoWCharTest DoWCharTest_vsprintf
-void DoNumTest(const char *formatstr, int value, const char *checkstr)
+inline void DoNumTest_vsprintf(const char *formatstr, int value, const char *checkstr)
{
char buf[256] = { 0 };
value, formatstr, checkstr, buf);
}
}
+#define DoNumTest DoNumTest_vsprintf
-void DoI64Test(const char *formatstr, INT64 value, char *valuestr, const char *checkstr)
+inline void DoI64Test_vsprintf(const char *formatstr, INT64 value, char *valuestr, const char *checkstr)
{
char buf[256] = { 0 };
valuestr, formatstr, checkstr, buf);
}
}
-void DoDoubleTest(const char *formatstr, double value, const char *checkstr1, char
+#define DoI64Test DoI64Test_vsprintf
+
+inline void DoDoubleTest_vsprintf(const char *formatstr, double value, const char *checkstr1, char
*checkstr2)
{
char buf[256] = { 0 };
value, formatstr, checkstr1, checkstr2, buf);
}
}
+#define DoDoubleTest DoDoubleTest_vsprintf
+
/*FROM TEST 9*/
-void DoArgumentPrecTest(const char *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_vsprintf(const char *formatstr, int precision, void *param,
char *paramstr, const char *checkstr1, const char *checkstr2)
{
char buf[256];
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_vsprintf
-void DoArgumentPrecDoubleTest(const char *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_vsprintf(const char *formatstr, int precision, double param,
const char *checkstr1, const char *checkstr2)
{
char buf[256];
precision, checkstr1, checkstr2, buf);
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_vsprintf
+
/*FROM TEST4*/
-void DoPointerTest(const char *formatstr, void* param, char* paramstr,
+inline void DoPointerTest_vsprintf(const char *formatstr, void* param, char* paramstr,
const char *checkstr1)
{
char buf[256] = { 0 };
paramstr, formatstr, checkstr1, buf);
}
}
+#define DoPointerTest DoPointerTest_vsprintf
-void DoI64DoubleTest(const char *formatstr, INT64 value, char *valuestr,
+inline void DoI64DoubleTest_vsprintf(const char *formatstr, INT64 value, char *valuestr,
const char *checkstr1)
{
char buf[256] = { 0 };
valuestr, formatstr, checkstr1, buf);
}
}
+#define DoI64DoubleTest DoI64DoubleTest_vsprintf
-void DoTest(const char *formatstr, int param, const char *checkstr)
+inline void DoTest_vsprintf(const char *formatstr, int param, const char *checkstr)
{
char buf[256] = { 0 };
int n = -1;
Fail("ERROR: Expected \"%s\" got \"%s\".\n", checkstr, buf);
}
}
+#define DoTest DoTest_vsprintf
-void DoShortTest(const char *formatstr, int param, const char *checkstr)
+inline void DoShortTest_vsprintf(const char *formatstr, int param, const char *checkstr)
{
char buf[256] = { 0 };
short int n = -1;
Fail("ERROR: Expected \"%s\" got \"%s\".\n", checkstr, buf);
}
}
+#define DoShortTest DoShortTest_vsprintf
#endif
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_vswprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test1_paltest_vswprintf_test1, "c_runtime/vswprintf/test1/paltest_vswprintf_test1")
{
WCHAR *checkstr = NULL;
WCHAR buf[256] = { 0 };
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the vswprintf function.
-= General test to see if vswprintf works correctly.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_vswprintf_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test10 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test10
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test10_paltest_vswprintf_test10, "c_runtime/vswprintf/test10/paltest_vswprintf_test10")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with octal numbers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test11.cpp
-)
-
-add_executable(paltest_vswprintf_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test11 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test11
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test11_paltest_vswprintf_test11, "c_runtime/vswprintf/test11/paltest_vswprintf_test11")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test11
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with unsigned numbers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_vswprintf_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test12 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test12
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test12_paltest_vswprintf_test12, "c_runtime/vswprintf/test12/paltest_vswprintf_test12")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test12
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with hex numbers (lowercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test13.cpp
-)
-
-add_executable(paltest_vswprintf_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test13 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test13
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test13_paltest_vswprintf_test13, "c_runtime/vswprintf/test13/paltest_vswprintf_test13")
{
int neg = -42;
int pos = 0x1234ab;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test13
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with hex numbers (uppercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test14.cpp
-)
-
-add_executable(paltest_vswprintf_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test14 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test14
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test14_paltest_vswprintf_test14, "c_runtime/vswprintf/test14/paltest_vswprintf_test14")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test14
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with exponential format doubles (lowercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test15.cpp
-)
-
-add_executable(paltest_vswprintf_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test15 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test15
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test15_paltest_vswprintf_test15, "c_runtime/vswprintf/test15/paltest_vswprintf_test15")
{
double val = 256.0;
double neg = -256.0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test15
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with exponential format doubles (uppercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test16.cpp
-)
-
-add_executable(paltest_vswprintf_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test16 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test16
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test16_paltest_vswprintf_test16, "c_runtime/vswprintf/test16/paltest_vswprintf_test16")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test16
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with decimal point format doubles.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test17.cpp
-)
-
-add_executable(paltest_vswprintf_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test17 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test17
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test17_paltest_vswprintf_test17, "c_runtime/vswprintf/test17/paltest_vswprintf_test17")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test17
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with compact format doubles (lowercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test18.cpp
-)
-
-add_executable(paltest_vswprintf_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test18 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test18
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test18_paltest_vswprintf_test18, "c_runtime/vswprintf/test18/paltest_vswprintf_test18")
{
double val = 2560.001;
double neg = -2560.001;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test18
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with compact format doubles (uppercase).
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test19.cpp
-)
-
-add_executable(paltest_vswprintf_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test19 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test19
- ${COMMON_TEST_LIBRARIES}
-)
#define DOTEST(a,b,c,d,e) DoTest(a,b,(void*)c,d,e)
-void DoArgumentPrecTest(WCHAR *formatstr, int precision, void *param,
+void DoArgumentPrecTest_vswprintf(WCHAR *formatstr, int precision, void *param,
WCHAR *paramstr, WCHAR *checkstr1, WCHAR *checkstr2)
{
WCHAR buf[256];
convertC(buf));
}
}
-void DoArgumentPrecDoubleTest(WCHAR *formatstr, int precision, double param,
+void DoArgumentPrecDoubleTest_vswprintf(WCHAR *formatstr, int precision, double param,
WCHAR *checkstr1, WCHAR *checkstr2)
{
WCHAR buf[256];
* Uses memcmp & wcslen
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test19_paltest_vswprintf_test19, "c_runtime/vswprintf/test19/paltest_vswprintf_test19")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
- DoArgumentPrecTest(convert("%.*s"), 2, (void*)convert("bar"), convert("bar"),
+ DoArgumentPrecTest_vswprintf(convert("%.*s"), 2, (void*)convert("bar"), convert("bar"),
convert("ba"), convert("ba"));
- DoArgumentPrecTest(convert("%.*c"), 0, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vswprintf(convert("%.*c"), 0, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*c"), 4, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vswprintf(convert("%.*c"), 4, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*C"), 0, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vswprintf(convert("%.*C"), 0, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*C"), 4, (void*)'a', convert("a"),
+ DoArgumentPrecTest_vswprintf(convert("%.*C"), 4, (void*)'a', convert("a"),
convert("a"), convert("a"));
- DoArgumentPrecTest(convert("%.*d"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*d"), 1, (void*)42, convert("42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*d"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*d"), 3, (void*)42, convert("42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*i"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*i"), 1, (void*)42, convert("42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*i"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*i"), 3, (void*)42, convert("42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*o"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*o"), 1, (void*)42, convert("42"),
convert("52"), convert("52"));
- DoArgumentPrecTest(convert("%.*o"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*o"), 3, (void*)42, convert("42"),
convert("052"), convert("052"));
- DoArgumentPrecTest(convert("%.*u"), 1, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*u"), 1, (void*)42, convert("42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*u"), 3, (void*)42, convert("42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*u"), 3, (void*)42, convert("42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*x"), 1, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*x"), 1, (void*)0x42, convert("0x42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*x"), 3, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*x"), 3, (void*)0x42, convert("0x42"),
convert("042"), convert("042"));
- DoArgumentPrecTest(convert("%.*X"), 1, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*X"), 1, (void*)0x42, convert("0x42"),
convert("42"), convert("42"));
- DoArgumentPrecTest(convert("%.*X"), 3, (void*)0x42, convert("0x42"),
+ DoArgumentPrecTest_vswprintf(convert("%.*X"), 3, (void*)0x42, convert("0x42"),
convert("042"), convert("042"));
- DoArgumentPrecDoubleTest(convert("%.*e"), 1, 2.01, convert("2.0e+000"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*e"), 1, 2.01, convert("2.0e+000"),
convert("2.0e+00"));
- DoArgumentPrecDoubleTest(convert("%.*e"), 3, 2.01, convert("2.010e+000"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*e"), 3, 2.01, convert("2.010e+000"),
convert("2.010e+00"));
- DoArgumentPrecDoubleTest(convert("%.*E"), 1, 2.01, convert("2.0E+000"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*E"), 1, 2.01, convert("2.0E+000"),
convert("2.0E+00"));
- DoArgumentPrecDoubleTest(convert("%.*E"), 3, 2.01, convert("2.010E+000"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*E"), 3, 2.01, convert("2.010E+000"),
convert("2.010E+00"));
- DoArgumentPrecDoubleTest(convert("%.*f"), 1, 2.01, convert("2.0"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*f"), 1, 2.01, convert("2.0"),
convert("2.0"));
- DoArgumentPrecDoubleTest(convert("%.*f"), 3, 2.01, convert("2.010"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*f"), 3, 2.01, convert("2.010"),
convert("2.010"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 1, 256.01, convert("3e+002"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*g"), 1, 256.01, convert("3e+002"),
convert("3e+02"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 3, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*g"), 3, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 4, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*g"), 4, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*g"), 6, 256.01, convert("256.01"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*g"), 6, 256.01, convert("256.01"),
convert("256.01"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 1, 256.01, convert("3E+002"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*G"), 1, 256.01, convert("3E+002"),
convert("3E+02"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 3, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*G"), 3, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 4, 256.01, convert("256"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*G"), 4, 256.01, convert("256"),
convert("256"));
- DoArgumentPrecDoubleTest(convert("%.*G"), 6, 256.01, convert("256.01"),
+ DoArgumentPrecDoubleTest_vswprintf(convert("%.*G"), 6, 256.01, convert("256.01"),
convert("256.01"));
PAL_Terminate();
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test19
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with argument specified precision.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_vswprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test2_paltest_vswprintf_test2, "c_runtime/vswprintf/test2/paltest_vswprintf_test2")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with strings.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_vswprintf_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test3 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test3
- ${COMMON_TEST_LIBRARIES}
-)
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test3_paltest_vswprintf_test3, "c_runtime/vswprintf/test3/paltest_vswprintf_test3")
{
if (PAL_Initialize(argc, argv) != 0)
return(FAIL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with wide strings.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_vswprintf_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test4 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test4
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test4_paltest_vswprintf_test4, "c_runtime/vswprintf/test4/paltest_vswprintf_test4")
{
void *ptr = (void*) 0x123456;
INT64 lptr = I64(0x1234567887654321);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with pointers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_vswprintf_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test6 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test6
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test6_paltest_vswprintf_test6, "c_runtime/vswprintf/test6/paltest_vswprintf_test6")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with characters.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_vswprintf_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test7 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test7
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test7_paltest_vswprintf_test7, "c_runtime/vswprintf/test7/paltest_vswprintf_test7")
{
WCHAR wc = (WCHAR) 'c';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with wide characters.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_vswprintf_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test8 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test8
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test8_paltest_vswprintf_test8, "c_runtime/vswprintf/test8/paltest_vswprintf_test8")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test8
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with decimal numbers.
-= This test is modeled after _snwprintf.
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_vswprintf_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_vswprintf_test9 coreclrpal)
-
-target_link_libraries(paltest_vswprintf_test9
- ${COMMON_TEST_LIBRARIES}
-)
/* memcmp is used to verify the results, so this test is dependent on it. */
/* ditto with wcslen */
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_vswprintf_test9_paltest_vswprintf_test9, "c_runtime/vswprintf/test9/paltest_vswprintf_test9")
{
int neg = -42;
int pos = 42;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = vswprintf
-Name = Positive Test for vswprintf
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests the PAL implementation of the vswprintf function.
-= Tests vswprintf with integer numbers
-= This test is modeled after _snwprintf.
#define __vswprintf_H__
/* These functions leaks memory a lot. C'est la vie. */
-int testvswp(char16_t* buf, size_t buffSize, const char16_t* format, ...)
+inline int testvswp(char16_t* buf, size_t buffSize, const char16_t* format, ...)
{
int retVal = 0;
va_list arglist;
return( retVal);
}
-void DoWStrTest(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
+inline void DoWStrTest_vswprintf_s(const WCHAR *formatstr, WCHAR *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoWStrTest DoWStrTest_vswprintf_s
-void DoStrTest(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
+inline void DoStrTest_vswprintf_s(const WCHAR *formatstr, char *param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoStrTest DoStrTest_vswprintf_s
-void DoCharTest(const WCHAR *formatstr, char param, const WCHAR *checkstr)
+inline void DoCharTest_vswprintf_s(const WCHAR *formatstr, char param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoCharTest DoCharTest_vswprintf_s
-void DoWCharTest(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
+inline void DoWCharTest_vswprintf_s(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoWCharTest DoWCharTest_vswprintf_s
-void DoNumTest(const WCHAR *formatstr, int value, const WCHAR *checkstr)
+inline void DoNumTest_vswprintf_s(const WCHAR *formatstr, int value, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
+#define DoNumTest DoNumTest_vswprintf_s
-void DoI64NumTest(const WCHAR *formatstr, INT64 value, char *valuestr, const WCHAR *checkstr)
+inline void DoI64NumTest_vswprintf_s(const WCHAR *formatstr, INT64 value, char *valuestr, const WCHAR *checkstr)
{
WCHAR buf[256] = { 0 };
convertC(checkstr), convertC(buf));
}
}
-void DoDoubleTest(const WCHAR *formatstr, double value, const WCHAR *checkstr1, WCHAR
+#define DoI64NumTest DoI64NumTest_vswprintf_s
+
+inline void DoDoubleTest_vswprintf_s(const WCHAR *formatstr, double value, const WCHAR *checkstr1, WCHAR
*checkstr2)
{
WCHAR buf[256] = { 0 };
convertC(buf));
}
}
+#define DoDoubleTest DoDoubleTest_vswprintf_s
#endif
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcscat_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcscat_test1 coreclrpal)
-
-target_link_libraries(paltest_wcscat_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: uses memcmp and the (pal) sprintf_s
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcscat_test1_paltest_wcscat_test1, "c_runtime/wcscat/test1/paltest_wcscat_test1")
{
WCHAR dest[80];
WCHAR test[] = {'f','o','o',' ','b','a','r',' ','b','a','z',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcscat
-Name = Positive Test for wcscat
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test to that wcscat correctly concatanates wide strings, including placing
-= null pointers
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcschr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcschr_test1 coreclrpal)
-
-target_link_libraries(paltest_wcschr_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcschr_test1_paltest_wcschr_test1, "c_runtime/wcschr/test1/paltest_wcschr_test1")
{
WCHAR str[] = {'f','o','o',' ','b','a','r',' ',0};
WCHAR c = (WCHAR)' ';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcschr
-Name = Positive Test for wcschr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that wcschr correctly finds the first occurrence of a character in a
-= string.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcscmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcscmp_test1 coreclrpal)
-
-target_link_libraries(paltest_wcscmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcscmp_test1_paltest_wcscmp_test1, "c_runtime/wcscmp/test1/paltest_wcscmp_test1")
{
WCHAR str1[] = {'f','o','o',0};
WCHAR str2[] = {'f','o','o','x',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcscmp
-Name = Test #1 for wcscmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that wcscmp correctly compares two strings with case sensitivity.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcscpy_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcscpy_test1 coreclrpal)
-
-target_link_libraries(paltest_wcscpy_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: uses memcmp and sprintf_s.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcscpy_test1_paltest_wcscpy_test1, "c_runtime/wcscpy/test1/paltest_wcscpy_test1")
{
WCHAR str[] = {'f','o','o',0,'b','a','r',0};
WCHAR dest[80];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcscpy
-Name = Positive Test for wcscpy
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that wcscpy correctly copies a null-terminated wide string.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcslen_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcslen_test1 coreclrpal)
-
-target_link_libraries(paltest_wcslen_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcslen_test1_paltest_wcslen_test1, "c_runtime/wcslen/test1/paltest_wcslen_test1")
{
WCHAR str1[] = {'f','o','o',' ',0};
WCHAR str2[] = {0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcslen
-Name = Positive Test for wcslen
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that wcslen correctly returns the length (in wide characters, not byte)
-= of a wide string
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcsncmp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcsncmp_test1 coreclrpal)
-
-target_link_libraries(paltest_wcsncmp_test1
- ${COMMON_TEST_LIBRARIES}
-)
* Notes: uses wcslen.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcsncmp_test1_paltest_wcsncmp_test1, "c_runtime/wcsncmp/test1/paltest_wcsncmp_test1")
{
WCHAR str1[] = {'f','o','o',0};
WCHAR str2[] = {'f','o','o','x',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcsncmp
-Name = Positive Test for wcsncmp
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that wcsncmp case-sensitively compares wide strings, making sure that
-= the count argument is handled correctly.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcsncpy_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcsncpy_test1 coreclrpal)
-
-target_link_libraries(paltest_wcsncpy_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcsncpy_test1_paltest_wcsncpy_test1, "c_runtime/wcsncpy/test1/paltest_wcsncpy_test1")
{
WCHAR dest[80];
WCHAR result[] = {'f','o','o','b','a','r',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcsncpy
-Name = Test #1 for wcsncpy
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests to see that wcsncpy correctly copies wide strings, including handling
-= the count argument correctly (copying no more that count characters, not
-= automatically adding a null, and padding if necessary).
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcspbrk_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcspbrk_test1 coreclrpal)
-
-target_link_libraries(paltest_wcspbrk_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcspbrk_test1_paltest_wcspbrk_test1, "c_runtime/wcspbrk/test1/paltest_wcspbrk_test1")
{
WCHAR *string;
WCHAR *key1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcspbrk
-Name = Positive Test for wcspbrk
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that wcspbrk returns a pointer to the first element in the first
-= string that matches a character in the second (or NULL).
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcsrchr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcsrchr_test1 coreclrpal)
-
-target_link_libraries(paltest_wcsrchr_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcsrchr_test1_paltest_wcsrchr_test1, "c_runtime/wcsrchr/test1/paltest_wcsrchr_test1")
{
WCHAR str[] = {'f','o','o',' ','b','a','r',' ','b','a','z',0};
WCHAR c = (WCHAR)' ';
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcsrchr
-Name = Positive Test for wcsrchr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests to see that wcsrchr correctly returns a pointer to the last occurence
-= of a character in a a string.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcsstr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcsstr_test1 coreclrpal)
-
-target_link_libraries(paltest_wcsstr_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcsstr_test1_paltest_wcsstr_test1, "c_runtime/wcsstr/test1/paltest_wcsstr_test1")
{
WCHAR *string;
WCHAR *key1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcsstr
-Name = Positive Test for wcsstr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that wcsstr correctly find substrings in wide stings, including
-= returning NULL when the substring can't be found.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcstod_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstod_test1 coreclrpal)
-
-target_link_libraries(paltest_wcstod_test1
- ${COMMON_TEST_LIBRARIES}
-)
int stopChar;
};
-struct testCase testCases[] =
+PALTEST(c_runtime_wcstod_test1_paltest_wcstod_test1, "c_runtime/wcstod/test1/paltest_wcstod_test1")
{
- {1234,"1234", 4},
- {-1234,"-1234", 5},
- {1234.44,"1234.44", 7},
- {1234e-5,"1234e-5", 7},
- {1234e+5,"1234e+5", 7},
- {1234E5,"1234E5", 6},
- {1234.657e-8, "1234.657e-8", 11},
- {0, "1e-800", 6},
- {0, "-1e-800", 7},
- {1234567e-8, " 1234567e-8 foo", 13},
- {0, " foo 32 bar", 0},
-};
+ struct testCase testCases[] =
+ {
+ {1234,"1234", 4},
+ {-1234,"-1234", 5},
+ {1234.44,"1234.44", 7},
+ {1234e-5,"1234e-5", 7},
+ {1234e+5,"1234e+5", 7},
+ {1234E5,"1234E5", 6},
+ {1234.657e-8, "1234.657e-8", 11},
+ {0, "1e-800", 6},
+ {0, "-1e-800", 7},
+ {1234567e-8, " 1234567e-8 foo", 13},
+ {0, " foo 32 bar", 0},
+ };
-int __cdecl main(int argc, char **argv)
-{
WCHAR *wideStr;
WCHAR *endptr;
double result;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstod
-Name = Positive Test for wcstod
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests wcstod with a number of sample strings.
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_wcstod_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstod_test2 coreclrpal)
-
-target_link_libraries(paltest_wcstod_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(c_runtime_wcstod_test2_paltest_wcstod_test2, "c_runtime/wcstod/test2/paltest_wcstod_test2")
{
/* Representation of positive infinty for a IEEE 64-bit double */
INT64 PosInifity = (INT64)(0x7ff00000) << 32;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstod
-Name = Positive Test for wcstod
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests wcstod with overflows
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcstok_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstok_test1 coreclrpal)
-
-target_link_libraries(paltest_wcstok_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcstok_test1_paltest_wcstok_test1, "c_runtime/wcstok/test1/paltest_wcstok_test1")
{
/* foo bar baz */
WCHAR str[] = {'f','o','o',' ','b','a','r',' ','b','a','z','\0'};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstok
-Name = wcstok test- tokenize a string and ensure the string takes correct form.
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Search for a number of tokens within strings. Check that the return values
-= are what is expect, and also that the strings match up with our expected
-= results.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wcstoul_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstoul_test1 coreclrpal)
-
-target_link_libraries(paltest_wcstoul_test1
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcstoul_test1_paltest_wcstoul_test1, "c_runtime/wcstoul/test1/paltest_wcstoul_test1")
{
WCHAR teststr[] = {'1','2','3','4','5',0};
WCHAR *end;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstoul
-Name = Positive Test for wcstoul
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests wcstoul with base 4 and a string that includes some invalid characters.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_wcstoul_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstoul_test2 coreclrpal)
-
-target_link_libraries(paltest_wcstoul_test2
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcstoul_test2_paltest_wcstoul_test2, "c_runtime/wcstoul/test2/paltest_wcstoul_test2")
{
WCHAR teststr[] = {'1','2','3','4','5',0};
WCHAR *end;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstoul
-Name = Positive Test for wcstoul
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests wcstoul with base 10 and a completely valid string.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_wcstoul_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstoul_test3 coreclrpal)
-
-target_link_libraries(paltest_wcstoul_test3
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcstoul_test3_paltest_wcstoul_test3, "c_runtime/wcstoul/test3/paltest_wcstoul_test3")
{
WCHAR str[] = {'Z',0};
WCHAR *end;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstoul
-Name = Positive Test for wcstoul
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests wcstoul with a completely invalid string (base 10).
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_wcstoul_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstoul_test4 coreclrpal)
-
-target_link_libraries(paltest_wcstoul_test4
- ${COMMON_TEST_LIBRARIES}
-)
* this is not currently tested.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcstoul_test4_paltest_wcstoul_test4, "c_runtime/wcstoul/test4/paltest_wcstoul_test4")
{
WCHAR maxstr[] = {'4','2','9','4','9','6','7','2','9','5',0};
ULONG max = 4294967295ul;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstoul
-Name = Positive Test for wcstoul
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests wcstoul with base 10 and the highest possible value.
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_wcstoul_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstoul_test5 coreclrpal)
-
-target_link_libraries(paltest_wcstoul_test5
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcstoul_test5_paltest_wcstoul_test5, "c_runtime/wcstoul/test5/paltest_wcstoul_test5")
{
WCHAR overstr[] = {'4','2','9','4','9','6','7','2','9','6',0};
WCHAR understr[] = {'-','1',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstoul
-Name = Positive Test for wcstoul
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests wcstoul (base 10) with underflowing and overflowing.
-= Chesks that errno gets set to ERANGE.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_wcstoul_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_wcstoul_test6 coreclrpal)
-
-target_link_libraries(paltest_wcstoul_test6
- ${COMMON_TEST_LIBRARIES}
-)
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wcstoul_test6_paltest_wcstoul_test6, "c_runtime/wcstoul/test6/paltest_wcstoul_test6")
{
WCHAR test1[] = {'0','x','1','2', 0};
WCHAR test2[] = {'0','1','2',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wcstoul
-Name = Positive Test for wcstoul
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests wcstoul with hex and octal strings, with different bases.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_wprintf_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_wprintf_test1 coreclrpal)
-
-target_link_libraries(paltest_wprintf_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "../wprintf.h"
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wprintf_test1_paltest_wprintf_test1, "c_runtime/wprintf/test1/paltest_wprintf_test1")
{
char checkstr[] = "hello world";
WCHAR *wcheckstr;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wprintf
-Name = Positive Test for wprintf
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= General test to see if wprintf works correctly
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_wprintf_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_wprintf_test2 coreclrpal)
-
-target_link_libraries(paltest_wprintf_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(c_runtime_wprintf_test2_paltest_wprintf_test2, "c_runtime/wprintf/test2/paltest_wprintf_test2")
{
if (PAL_Initialize(argc, argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = wprintf
-Name = Positive Test for wprintf
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests wprintf with strings
#ifndef __wprintf_H__
#define __wprintf_H__
-void DoStrTest(const WCHAR *formatstr, const WCHAR *param, const WCHAR *checkstr)
+inline void DoStrTest_wprintf(const WCHAR *formatstr, const WCHAR *param, const WCHAR *checkstr)
{
int ret;
wcslen(checkstr), ret);
}
}
+#define DoStrTest DoStrTest_wprintf
-
-void DoPointerTest(const WCHAR *formatstr, void* param, WCHAR* paramstr,
+inline void DoPointerTest_wprintf(const WCHAR *formatstr, void* param, WCHAR* paramstr,
const WCHAR *checkstr1)
{
int ret;
wcslen(checkstr1), ret);
}
}
+#define DoPointerTest DoPointerTest_wprintf
-void DoCountTest(const WCHAR *formatstr, int param, const WCHAR *checkstr)
+inline void DoCountTest_wprintf(const WCHAR *formatstr, int param, const WCHAR *checkstr)
{
int ret;
int n = -1;
wcslen(checkstr), ret);
}
}
+#define DoCountTest DoCountTest_wprintf
-void DoShortCountTest(const WCHAR *formatstr, int param, const WCHAR *checkstr)
+inline void DoShortCountTest_wprintf(const WCHAR *formatstr, int param, const WCHAR *checkstr)
{
int ret;
short int n = -1;
wcslen(checkstr), ret);
}
}
+#define DoShortCountTest DoShortCountTest_wprintf
-
-void DoCharTest(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
+inline void DoCharTest_wprintf(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
{
int ret;
wcslen(checkstr), ret);
}
}
+#define DoCharTest DoCharTest_wprintf
-void DoWCharTest(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
+inline void DoWCharTest_wprintf(const WCHAR *formatstr, WCHAR param, const WCHAR *checkstr)
{
int ret;
wcslen(checkstr), ret);
}
}
+#define DoWCharTest DoWCharTest_wprintf
-void DoNumTest(const WCHAR *formatstr, int param, const WCHAR *checkstr)
+inline void DoNumTest_wprintf(const WCHAR *formatstr, int param, const WCHAR *checkstr)
{
int ret;
wcslen(checkstr), ret);
}
}
+#define DoNumTest DoNumTest_wprintf
-void DoI64Test(const WCHAR *formatstr, INT64 param, const WCHAR *valuestr,
+inline void DoI64Test_wprintf(const WCHAR *formatstr, INT64 param, const WCHAR *valuestr,
const WCHAR *checkstr1)
{
int ret;
wcslen(checkstr1), ret);
}
}
+#define DoI64Test DoI64Test_wprintf
-void DoDoubleTest(const WCHAR *formatstr, double param,
+inline void DoDoubleTest_wprintf(const WCHAR *formatstr, double param,
const WCHAR *checkstr1, const WCHAR *checkstr2)
{
int ret;
wcslen(checkstr1), wcslen(checkstr2), ret);
}
}
+#define DoDoubleTest DoDoubleTest_wprintf
-void DoArgumentPrecTest(const WCHAR *formatstr, int precision, void *param,
+inline void DoArgumentPrecTest_wprintf(const WCHAR *formatstr, int precision, void *param,
WCHAR *paramstr, const WCHAR *checkstr1, const WCHAR *checkstr2)
{
int ret;
wcslen(checkstr1), wcslen(checkstr2), ret);
}
}
+#define DoArgumentPrecTest DoArgumentPrecTest_wprintf
-void DoArgumentPrecDoubleTest(const WCHAR *formatstr, int precision, double param,
+inline void DoArgumentPrecDoubleTest_wprintf(const WCHAR *formatstr, int precision, double param,
const WCHAR *checkstr1, const WCHAR *checkstr2)
{
int ret;
wcslen(checkstr1), wcslen(checkstr2), ret);
}
}
+#define DoArgumentPrecDoubleTest DoArgumentPrecDoubleTest_wprintf
#endif
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+/*============================================================================
+**
+** Source: palsuite.cpp
+**
+** Purpose: Define constants and implement functions that are useful to
+** multiple function categories.
+**
+**==========================================================================*/
+
+
+#include "palsuite.h"
+
+const char* szTextFile = "text.txt";
+
+HANDLE hToken[NUM_TOKENS];
+CRITICAL_SECTION CriticalSection;
+
+WCHAR* convert(const char * aString)
+{
+ int size;
+ WCHAR* wideBuffer;
+
+ size = MultiByteToWideChar(CP_ACP,0,aString,-1,NULL,0);
+ wideBuffer = (WCHAR*) malloc(size*sizeof(WCHAR));
+ if (wideBuffer == NULL)
+ {
+ Fail("ERROR: Unable to allocate memory!\n");
+ }
+ MultiByteToWideChar(CP_ACP,0,aString,-1,wideBuffer,size);
+ return wideBuffer;
+}
+
+char* convertC(const WCHAR * wString)
+{
+ int size;
+ char * MultiBuffer = NULL;
+
+ size = WideCharToMultiByte(CP_ACP,0,wString,-1,MultiBuffer,0,NULL,NULL);
+ MultiBuffer = (char*) malloc(size);
+ if (MultiBuffer == NULL)
+ {
+ Fail("ERROR: Unable to allocate memory!\n");
+ }
+ WideCharToMultiByte(CP_ACP,0,wString,-1,MultiBuffer,size,NULL,NULL);
+ return MultiBuffer;
+}
+
+UINT64 GetHighPrecisionTimeStamp(LARGE_INTEGER performanceFrequency)
+{
+ LARGE_INTEGER ts;
+ if (!QueryPerformanceCounter(&ts))
+ {
+ Fail("ERROR: Unable to query performance counter!\n");
+ }
+
+ return ts.QuadPart / (performanceFrequency.QuadPart / 1000);
+}
+
+static const char* rgchPathDelim = "\\";
+
+
+int
+mkAbsoluteFilename( LPSTR dirName,
+ DWORD dwDirLength,
+ LPCSTR fileName,
+ DWORD dwFileLength,
+ LPSTR absPathName )
+{
+ DWORD sizeDN, sizeFN, sizeAPN;
+
+ sizeDN = strlen( dirName );
+ sizeFN = strlen( fileName );
+ sizeAPN = (sizeDN + 1 + sizeFN + 1);
+
+ /* ensure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
+ if( sizeAPN > _MAX_PATH )
+ {
+ return ( 0 );
+ }
+
+ strncpy( absPathName, dirName, dwDirLength +1 );
+ strncpy( absPathName, rgchPathDelim, 2 );
+ strncpy( absPathName, fileName, dwFileLength +1 );
+
+ return (sizeAPN);
+
+}
+
+
+BOOL CleanupHelper (HANDLE *hArray, DWORD dwIndex)
+{
+ BOOL bCHRet;
+
+ bCHRet = CloseHandle(hArray[dwIndex]);
+ if (!bCHRet)
+ {
+ Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
+ "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
+ GetLastError());
+ }
+
+ return (bCHRet);
+}
+
+BOOL Cleanup(HANDLE *hArray, DWORD dwIndex)
+{
+ BOOL bCRet;
+ BOOL bCHRet = 0;
+
+ while (--dwIndex > 0)
+ {
+ bCHRet = CleanupHelper(&hArray[0], dwIndex);
+ }
+
+ bCRet = CloseHandle(hArray[0]);
+ if (!bCRet)
+ {
+ Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
+ "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
+ GetLastError());
+ }
+
+ return (bCRet&&bCHRet);
+}
+
+/*
+ * Take two wide strings representing file and directory names
+ * (dirName, fileName), join the strings with the appropriate path
+ * delimiter and populate a wide character buffer (absPathName) with
+ * the resulting string.
+ *
+ * Returns: The number of wide characters in the resulting string.
+ * 0 is returned on Error.
+ */
+int
+mkAbsoluteFilenameW (
+ LPWSTR dirName,
+ DWORD dwDirLength,
+ LPCWSTR fileName,
+ DWORD dwFileLength,
+ LPWSTR absPathName )
+{
+ const WCHAR szPathDelimW[] = {'\\','\0'};
+
+ DWORD sizeDN, sizeFN, sizeAPN;
+
+ sizeDN = wcslen( dirName );
+ sizeFN = wcslen( fileName );
+ sizeAPN = (sizeDN + 1 + sizeFN + 1);
+
+ /* insure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
+ if ( sizeAPN > _MAX_PATH )
+ {
+ return ( 0 );
+ }
+
+ wcsncpy(absPathName, dirName, dwDirLength +1);
+ wcsncpy(absPathName, szPathDelimW, 2);
+ wcsncpy(absPathName, fileName, dwFileLength +1);
+
+ return (sizeAPN);
+
+}
+
+/*
+ * Take two wide strings representing file and directory names
+ * (dirName, fileName), join the strings with the appropriate path
+ * delimiter and populate a wide character buffer (absPathName) with
+ * the resulting string.
+ *
+ * Returns: The number of wide characters in the resulting string.
+ * 0 is returned on Error.
+ */
+int
+mkAbsoluteFilenameA (
+ LPSTR dirName,
+ DWORD dwDirLength,
+ LPCSTR fileName,
+ DWORD dwFileLength,
+ LPSTR absPathName )
+{
+ const char *szPathDelimA = "\\";
+
+ DWORD sizeDN;
+ DWORD sizeFN;
+ DWORD sizeAPN;
+
+ sizeDN = strlen( dirName );
+ sizeFN = strlen( fileName );
+ sizeAPN = (sizeDN + 1 + sizeFN + 1);
+
+ /* insure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
+ if ( sizeAPN > _MAX_PATH )
+ {
+ return ( 0 );
+ }
+
+ strncpy(absPathName, dirName, dwDirLength +1);
+ strcat(absPathName, szPathDelimA);
+ strcat(absPathName, fileName);
+
+ return (sizeAPN);
+
+}
#include <pal.h>
#include <palprivate.h>
+#define PALTEST(testfunc, testname) \
+ int __cdecl testfunc(int argc, char* argv[]); \
+ static PALTest testfunc##_lookup(testfunc, testname); \
+ int __cdecl testfunc(int argc, char* argv[]) \
+
enum
{
PASS = 0,
FAIL = 1
};
-
-void Trace(const char *format, ...)
+inline void Trace(const char *format, ...)
{
va_list arglist;
va_end(arglist);
}
-void Fail(const char *format, ...)
+inline void Fail(const char *format, ...)
{
va_list arglist;
PAL_TerminateEx(FAIL);
}
+typedef int __cdecl(*PALTestEntrypoint)(int argc, char*[]);
+
+struct PALTest
+{
+ static PALTest* s_tests;
+ PALTest *_next;
+ PALTestEntrypoint _entrypoint;
+ const char *_name;
+ PALTest(PALTestEntrypoint entrypoint, const char *entrypointName)
+ {
+ _entrypoint = entrypoint;
+ _name = entrypointName;
+ _next = s_tests;
+ s_tests = this;
+ }
+};
+
#ifdef PAL_PERF
int __cdecl Test_Main(int argc, char **argv);
#define _countof(_array) (sizeof(_array)/sizeof(_array[0]))
-WCHAR* convert(const char * aString)
-{
- int size;
- WCHAR* wideBuffer;
-
- size = MultiByteToWideChar(CP_ACP,0,aString,-1,NULL,0);
- wideBuffer = (WCHAR*) malloc(size*sizeof(WCHAR));
- if (wideBuffer == NULL)
- {
- Fail("ERROR: Unable to allocate memory!\n");
- }
- MultiByteToWideChar(CP_ACP,0,aString,-1,wideBuffer,size);
- return wideBuffer;
-}
-
-char* convertC(const WCHAR * wString)
-{
- int size;
- char * MultiBuffer = NULL;
-
- size = WideCharToMultiByte(CP_ACP,0,wString,-1,MultiBuffer,0,NULL,NULL);
- MultiBuffer = (char*) malloc(size);
- if (MultiBuffer == NULL)
- {
- Fail("ERROR: Unable to allocate memory!\n");
- }
- WideCharToMultiByte(CP_ACP,0,wString,-1,MultiBuffer,size,NULL,NULL);
- return MultiBuffer;
-}
-
-UINT64 GetHighPrecisionTimeStamp(LARGE_INTEGER performanceFrequency)
-{
- LARGE_INTEGER ts;
- if (!QueryPerformanceCounter(&ts))
- {
- Fail("ERROR: Unable to query performance counter!\n");
- }
-
- return ts.QuadPart / (performanceFrequency.QuadPart / 1000);
-}
+WCHAR* convert(const char * aString);
+char* convertC(const WCHAR * wString);
+UINT64 GetHighPrecisionTimeStamp(LARGE_INTEGER performanceFrequency);
+
+extern const char* szTextFile;
+
+
+int
+mkAbsoluteFilename( LPSTR dirName,
+ DWORD dwDirLength,
+ LPCSTR fileName,
+ DWORD dwFileLength,
+ LPSTR absPathName );
+
+BOOL CleanupHelper (HANDLE *hArray, DWORD dwIndex);
+BOOL Cleanup(HANDLE *hArray, DWORD dwIndex);
+
+
+/*
+ * Tokens 0 and 1 are events. Token 2 is the thread.
+ */
+#define NUM_TOKENS 3
+
+extern HANDLE hToken[NUM_TOKENS];
+extern CRITICAL_SECTION CriticalSection;
+
+/*
+ * Take two wide strings representing file and directory names
+ * (dirName, fileName), join the strings with the appropriate path
+ * delimiter and populate a wide character buffer (absPathName) with
+ * the resulting string.
+ *
+ * Returns: The number of wide characters in the resulting string.
+ * 0 is returned on Error.
+ */
+int
+mkAbsoluteFilenameW (
+ LPWSTR dirName,
+ DWORD dwDirLength,
+ LPCWSTR fileName,
+ DWORD dwFileLength,
+ LPWSTR absPathName );
+
+/*
+ * Take two wide strings representing file and directory names
+ * (dirName, fileName), join the strings with the appropriate path
+ * delimiter and populate a wide character buffer (absPathName) with
+ * the resulting string.
+ *
+ * Returns: The number of wide characters in the resulting string.
+ * 0 is returned on Error.
+ */
+int
+mkAbsoluteFilenameA (
+ LPSTR dirName,
+ DWORD dwDirLength,
+ LPCSTR fileName,
+ DWORD dwFileLength,
+ LPSTR absPathName );
#endif
--- /dev/null
+c_runtime/abs/test1/paltest_abs_test1
+c_runtime/acos/test1/paltest_acos_test1
+c_runtime/acosf/test1/paltest_acosf_test1
+c_runtime/acosh/test1/paltest_acosh_test1
+c_runtime/acoshf/test1/paltest_acoshf_test1
+c_runtime/asin/test1/paltest_asin_test1
+c_runtime/asinf/test1/paltest_asinf_test1
+c_runtime/asinh/test1/paltest_asinh_test1
+c_runtime/asinhf/test1/paltest_asinhf_test1
+c_runtime/atan/test1/paltest_atan_test1
+c_runtime/atan2/test1/paltest_atan2_test1
+c_runtime/atan2f/test1/paltest_atan2f_test1
+c_runtime/atanf/test1/paltest_atanf_test1
+c_runtime/atanh/test1/paltest_atanh_test1
+c_runtime/atanhf/test1/paltest_atanhf_test1
+c_runtime/atof/test1/paltest_atof_test1
+c_runtime/atoi/test1/paltest_atoi_test1
+c_runtime/bsearch/test1/paltest_bsearch_test1
+c_runtime/bsearch/test2/paltest_bsearch_test2
+c_runtime/cbrt/test1/paltest_cbrt_test1
+c_runtime/cbrtf/test1/paltest_cbrtf_test1
+c_runtime/ceil/test1/paltest_ceil_test1
+c_runtime/ceilf/test1/paltest_ceilf_test1
+c_runtime/cos/test1/paltest_cos_test1
+c_runtime/cosf/test1/paltest_cosf_test1
+c_runtime/cosh/test1/paltest_cosh_test1
+c_runtime/coshf/test1/paltest_coshf_test1
+c_runtime/errno/test1/paltest_errno_test1
+c_runtime/errno/test2/paltest_errno_test2
+c_runtime/exit/test1/paltest_exit_test1
+c_runtime/exit/test2/paltest_exit_test2
+c_runtime/exp/test1/paltest_exp_test1
+c_runtime/expf/test1/paltest_expf_test1
+c_runtime/fabs/test1/paltest_fabs_test1
+c_runtime/fabsf/test1/paltest_fabsf_test1
+c_runtime/fclose/test1/paltest_fclose_test1
+c_runtime/fclose/test2/paltest_fclose_test2
+c_runtime/ferror/test1/paltest_ferror_test1
+c_runtime/ferror/test2/paltest_ferror_test2
+c_runtime/fflush/test1/paltest_fflush_test1
+c_runtime/fgets/test1/paltest_fgets_test1
+c_runtime/fgets/test2/paltest_fgets_test2
+c_runtime/fgets/test3/paltest_fgets_test3
+c_runtime/floor/test1/paltest_floor_test1
+c_runtime/floorf/test1/paltest_floorf_test1
+c_runtime/fma/test1/paltest_fma_test1
+c_runtime/fmaf/test1/paltest_fmaf_test1
+c_runtime/fmod/test1/paltest_fmod_test1
+c_runtime/fmodf/test1/paltest_fmodf_test1
+c_runtime/fopen/test1/paltest_fopen_test1
+c_runtime/fopen/test2/paltest_fopen_test2
+c_runtime/fopen/test3/paltest_fopen_test3
+c_runtime/fopen/test4/paltest_fopen_test4
+c_runtime/fopen/test5/paltest_fopen_test5
+c_runtime/fopen/test6/paltest_fopen_test6
+c_runtime/fopen/test7/paltest_fopen_test7
+c_runtime/fprintf/test1/paltest_fprintf_test1
+c_runtime/fprintf/test10/paltest_fprintf_test10
+c_runtime/fprintf/test11/paltest_fprintf_test11
+c_runtime/fprintf/test12/paltest_fprintf_test12
+c_runtime/fprintf/test13/paltest_fprintf_test13
+c_runtime/fprintf/test14/paltest_fprintf_test14
+c_runtime/fprintf/test15/paltest_fprintf_test15
+c_runtime/fprintf/test16/paltest_fprintf_test16
+c_runtime/fprintf/test17/paltest_fprintf_test17
+c_runtime/fprintf/test18/paltest_fprintf_test18
+c_runtime/fprintf/test19/paltest_fprintf_test19
+c_runtime/fprintf/test2/paltest_fprintf_test2
+c_runtime/fprintf/test3/paltest_fprintf_test3
+c_runtime/fprintf/test4/paltest_fprintf_test4
+c_runtime/fprintf/test5/paltest_fprintf_test5
+c_runtime/fprintf/test6/paltest_fprintf_test6
+c_runtime/fprintf/test7/paltest_fprintf_test7
+c_runtime/fprintf/test8/paltest_fprintf_test8
+c_runtime/fprintf/test9/paltest_fprintf_test9
+c_runtime/fputs/test1/paltest_fputs_test1
+c_runtime/fputs/test2/paltest_fputs_test2
+c_runtime/fread/test1/paltest_fread_test1
+c_runtime/fread/test2/paltest_fread_test2
+c_runtime/fread/test3/paltest_fread_test3
+c_runtime/free/test1/paltest_free_test1
+c_runtime/fseek/test1/paltest_fseek_test1
+c_runtime/ftell/test1/paltest_ftell_test1
+c_runtime/fwprintf/test1/paltest_fwprintf_test1
+c_runtime/fwprintf/test10/paltest_fwprintf_test10
+c_runtime/fwprintf/test11/paltest_fwprintf_test11
+c_runtime/fwprintf/test12/paltest_fwprintf_test12
+c_runtime/fwprintf/test13/paltest_fwprintf_test13
+c_runtime/fwprintf/test14/paltest_fwprintf_test14
+c_runtime/fwprintf/test15/paltest_fwprintf_test15
+c_runtime/fwprintf/test16/paltest_fwprintf_test16
+c_runtime/fwprintf/test17/paltest_fwprintf_test17
+c_runtime/fwprintf/test18/paltest_fwprintf_test18
+c_runtime/fwprintf/test19/paltest_fwprintf_test19
+c_runtime/fwprintf/test2/paltest_fwprintf_test2
+c_runtime/fwprintf/test3/paltest_fwprintf_test3
+c_runtime/fwprintf/test4/paltest_fwprintf_test4
+c_runtime/fwprintf/test5/paltest_fwprintf_test5
+c_runtime/fwprintf/test6/paltest_fwprintf_test6
+c_runtime/fwprintf/test7/paltest_fwprintf_test7
+c_runtime/fwprintf/test8/paltest_fwprintf_test8
+c_runtime/fwprintf/test9/paltest_fwprintf_test9
+c_runtime/fwrite/test1/paltest_fwrite_test1
+c_runtime/getenv/test1/paltest_getenv_test1
+c_runtime/getenv/test2/paltest_getenv_test2
+c_runtime/getenv/test3/paltest_getenv_test3
+c_runtime/ilogb/test1/paltest_ilogb_test1
+c_runtime/ilogbf/test1/paltest_ilogbf_test1
+c_runtime/isalnum/test1/paltest_isalnum_test1
+c_runtime/isalpha/test1/paltest_isalpha_test1
+c_runtime/isdigit/test1/paltest_isdigit_test1
+c_runtime/islower/test1/paltest_islower_test1
+c_runtime/isprint/test1/paltest_isprint_test1
+c_runtime/isprint/test2/paltest_isprint_test2
+c_runtime/isspace/test1/paltest_isspace_test1
+c_runtime/isupper/test1/paltest_isupper_test1
+c_runtime/iswdigit/test1/paltest_iswdigit_test1
+c_runtime/iswspace/test1/paltest_iswspace_test1
+c_runtime/iswupper/test1/paltest_iswupper_test1
+c_runtime/isxdigit/test1/paltest_isxdigit_test1
+c_runtime/llabs/test1/paltest_llabs_test1
+c_runtime/log/test1/paltest_log_test1
+c_runtime/log10/test1/paltest_log10_test1
+c_runtime/log10f/test1/paltest_log10f_test1
+c_runtime/log2/test1/paltest_log2_test1
+c_runtime/log2f/test1/paltest_log2f_test1
+c_runtime/logf/test1/paltest_logf_test1
+c_runtime/malloc/test1/paltest_malloc_test1
+c_runtime/malloc/test2/paltest_malloc_test2
+c_runtime/memchr/test1/paltest_memchr_test1
+c_runtime/memcmp/test1/paltest_memcmp_test1
+c_runtime/memcpy/test1/paltest_memcpy_test1
+c_runtime/memmove/test1/paltest_memmove_test1
+c_runtime/memset/test1/paltest_memset_test1
+c_runtime/modf/test1/paltest_modf_test1
+c_runtime/modff/test1/paltest_modff_test1
+c_runtime/pow/test1/paltest_pow_test1
+c_runtime/powf/test1/paltest_powf_test1
+c_runtime/printf/test1/paltest_printf_test1
+c_runtime/printf/test10/paltest_printf_test10
+c_runtime/printf/test11/paltest_printf_test11
+c_runtime/printf/test12/paltest_printf_test12
+c_runtime/printf/test13/paltest_printf_test13
+c_runtime/printf/test14/paltest_printf_test14
+c_runtime/printf/test15/paltest_printf_test15
+c_runtime/printf/test16/paltest_printf_test16
+c_runtime/printf/test17/paltest_printf_test17
+c_runtime/printf/test18/paltest_printf_test18
+c_runtime/printf/test19/paltest_printf_test19
+c_runtime/printf/test2/paltest_printf_test2
+c_runtime/printf/test3/paltest_printf_test3
+c_runtime/printf/test4/paltest_printf_test4
+c_runtime/printf/test5/paltest_printf_test5
+c_runtime/printf/test6/paltest_printf_test6
+c_runtime/printf/test7/paltest_printf_test7
+c_runtime/printf/test8/paltest_printf_test8
+c_runtime/printf/test9/paltest_printf_test9
+c_runtime/qsort/test1/paltest_qsort_test1
+c_runtime/qsort/test2/paltest_qsort_test2
+c_runtime/rand_srand/test1/paltest_rand_srand_test1
+c_runtime/realloc/test1/paltest_realloc_test1
+c_runtime/scalbn/test1/paltest_scalbn_test1
+c_runtime/scalbnf/test1/paltest_scalbnf_test1
+c_runtime/sin/test1/paltest_sin_test1
+c_runtime/sinf/test1/paltest_sinf_test1
+c_runtime/sinh/test1/paltest_sinh_test1
+c_runtime/sinhf/test1/paltest_sinhf_test1
+c_runtime/sprintf_s/test1/paltest_sprintf_test1
+c_runtime/sprintf_s/test10/paltest_sprintf_test10
+c_runtime/sprintf_s/test11/paltest_sprintf_test11
+c_runtime/sprintf_s/test12/paltest_sprintf_test12
+c_runtime/sprintf_s/test13/paltest_sprintf_test13
+c_runtime/sprintf_s/test14/paltest_sprintf_test14
+c_runtime/sprintf_s/test15/paltest_sprintf_test15
+c_runtime/sprintf_s/test16/paltest_sprintf_test16
+c_runtime/sprintf_s/test17/paltest_sprintf_test17
+c_runtime/sprintf_s/test18/paltest_sprintf_test18
+c_runtime/sprintf_s/test19/paltest_sprintf_test19
+c_runtime/sprintf_s/test2/paltest_sprintf_test2
+c_runtime/sprintf_s/test3/paltest_sprintf_test3
+c_runtime/sprintf_s/test4/paltest_sprintf_test4
+c_runtime/sprintf_s/test6/paltest_sprintf_test6
+c_runtime/sprintf_s/test7/paltest_sprintf_test7
+c_runtime/sprintf_s/test8/paltest_sprintf_test8
+c_runtime/sprintf_s/test9/paltest_sprintf_test9
+c_runtime/sqrt/test1/paltest_sqrt_test1
+c_runtime/sqrtf/test1/paltest_sqrtf_test1
+c_runtime/sscanf_s/test1/paltest_sscanf_test1
+c_runtime/sscanf_s/test10/paltest_sscanf_test10
+c_runtime/sscanf_s/test11/paltest_sscanf_test11
+c_runtime/sscanf_s/test12/paltest_sscanf_test12
+c_runtime/sscanf_s/test13/paltest_sscanf_test13
+c_runtime/sscanf_s/test14/paltest_sscanf_test14
+c_runtime/sscanf_s/test15/paltest_sscanf_test15
+c_runtime/sscanf_s/test16/paltest_sscanf_test16
+c_runtime/sscanf_s/test17/paltest_sscanf_test17
+c_runtime/sscanf_s/test2/paltest_sscanf_test2
+c_runtime/sscanf_s/test3/paltest_sscanf_test3
+c_runtime/sscanf_s/test4/paltest_sscanf_test4
+c_runtime/sscanf_s/test5/paltest_sscanf_test5
+c_runtime/sscanf_s/test6/paltest_sscanf_test6
+c_runtime/sscanf_s/test7/paltest_sscanf_test7
+c_runtime/sscanf_s/test8/paltest_sscanf_test8
+c_runtime/sscanf_s/test9/paltest_sscanf_test9
+c_runtime/strcat/test1/paltest_strcat_test1
+c_runtime/strchr/test1/paltest_strchr_test1
+c_runtime/strcmp/test1/paltest_strcmp_test1
+c_runtime/strcpy/test1/paltest_strcpy_test1
+c_runtime/strcspn/test1/paltest_strcspn_test1
+c_runtime/strlen/test1/paltest_strlen_test1
+c_runtime/strncat/test1/paltest_strncat_test1
+c_runtime/strncmp/test1/paltest_strncmp_test1
+c_runtime/strncpy/test1/paltest_strncpy_test1
+c_runtime/strpbrk/test1/paltest_strpbrk_test1
+c_runtime/strrchr/test1/paltest_strrchr_test1
+c_runtime/strspn/test1/paltest_strspn_test1
+c_runtime/strstr/test1/paltest_strstr_test1
+c_runtime/strtod/test1/paltest_strtod_test1
+c_runtime/strtod/test2/paltest_strtod_test2
+c_runtime/strtok/test1/paltest_strtok_test1
+c_runtime/strtoul/test1/paltest_strtoul_test1
+c_runtime/swprintf/test1/paltest_swprintf_test1
+c_runtime/swprintf/test10/paltest_swprintf_test10
+c_runtime/swprintf/test11/paltest_swprintf_test11
+c_runtime/swprintf/test12/paltest_swprintf_test12
+c_runtime/swprintf/test13/paltest_swprintf_test13
+c_runtime/swprintf/test14/paltest_swprintf_test14
+c_runtime/swprintf/test15/paltest_swprintf_test15
+c_runtime/swprintf/test16/paltest_swprintf_test16
+c_runtime/swprintf/test17/paltest_swprintf_test17
+c_runtime/swprintf/test18/paltest_swprintf_test18
+c_runtime/swprintf/test19/paltest_swprintf_test19
+c_runtime/swprintf/test2/paltest_swprintf_test2
+c_runtime/swprintf/test3/paltest_swprintf_test3
+c_runtime/swprintf/test4/paltest_swprintf_test4
+c_runtime/swprintf/test6/paltest_swprintf_test6
+c_runtime/swprintf/test7/paltest_swprintf_test7
+c_runtime/swprintf/test8/paltest_swprintf_test8
+c_runtime/swprintf/test9/paltest_swprintf_test9
+c_runtime/swscanf/test1/paltest_swscanf_test1
+c_runtime/swscanf/test10/paltest_swscanf_test10
+c_runtime/swscanf/test11/paltest_swscanf_test11
+c_runtime/swscanf/test12/paltest_swscanf_test12
+c_runtime/swscanf/test13/paltest_swscanf_test13
+c_runtime/swscanf/test14/paltest_swscanf_test14
+c_runtime/swscanf/test15/paltest_swscanf_test15
+c_runtime/swscanf/test16/paltest_swscanf_test16
+c_runtime/swscanf/test17/paltest_swscanf_test17
+c_runtime/swscanf/test2/paltest_swscanf_test2
+c_runtime/swscanf/test3/paltest_swscanf_test3
+c_runtime/swscanf/test4/paltest_swscanf_test4
+c_runtime/swscanf/test5/paltest_swscanf_test5
+c_runtime/swscanf/test6/paltest_swscanf_test6
+c_runtime/swscanf/test7/paltest_swscanf_test7
+c_runtime/swscanf/test8/paltest_swscanf_test8
+c_runtime/swscanf/test9/paltest_swscanf_test9
+c_runtime/tan/test1/paltest_tan_test1
+c_runtime/tanf/test1/paltest_tanf_test1
+c_runtime/tanh/test1/paltest_tanh_test1
+c_runtime/tanhf/test1/paltest_tanhf_test1
+c_runtime/time/test1/paltest_time_test1
+c_runtime/tolower/test1/paltest_tolower_test1
+c_runtime/toupper/test1/paltest_toupper_test1
+c_runtime/towlower/test1/paltest_towlower_test1
+c_runtime/towupper/test1/paltest_towupper_test1
+c_runtime/vfprintf/test1/paltest_vfprintf_test1
+c_runtime/vfprintf/test10/paltest_vfprintf_test10
+c_runtime/vfprintf/test11/paltest_vfprintf_test11
+c_runtime/vfprintf/test12/paltest_vfprintf_test12
+c_runtime/vfprintf/test13/paltest_vfprintf_test13
+c_runtime/vfprintf/test14/paltest_vfprintf_test14
+c_runtime/vfprintf/test15/paltest_vfprintf_test15
+c_runtime/vfprintf/test16/paltest_vfprintf_test16
+c_runtime/vfprintf/test17/paltest_vfprintf_test17
+c_runtime/vfprintf/test18/paltest_vfprintf_test18
+c_runtime/vfprintf/test19/paltest_vfprintf_test19
+c_runtime/vfprintf/test2/paltest_vfprintf_test2
+c_runtime/vfprintf/test3/paltest_vfprintf_test3
+c_runtime/vfprintf/test4/paltest_vfprintf_test4
+c_runtime/vfprintf/test5/paltest_vfprintf_test5
+c_runtime/vfprintf/test6/paltest_vfprintf_test6
+c_runtime/vfprintf/test7/paltest_vfprintf_test7
+c_runtime/vfprintf/test8/paltest_vfprintf_test8
+c_runtime/vfprintf/test9/paltest_vfprintf_test9
+c_runtime/vprintf/test10/paltest_vprintf_test10
+c_runtime/vprintf/test11/paltest_vprintf_test11
+c_runtime/vprintf/test12/paltest_vprintf_test12
+c_runtime/vprintf/test13/paltest_vprintf_test13
+c_runtime/vprintf/test14/paltest_vprintf_test14
+c_runtime/vprintf/test15/paltest_vprintf_test15
+c_runtime/vprintf/test16/paltest_vprintf_test16
+c_runtime/vprintf/test17/paltest_vprintf_test17
+c_runtime/vprintf/test18/paltest_vprintf_test18
+c_runtime/vprintf/test19/paltest_vprintf_test19
+c_runtime/vprintf/test2/paltest_vprintf_test2
+c_runtime/vprintf/test3/paltest_vprintf_test3
+c_runtime/vprintf/test4/paltest_vprintf_test4
+c_runtime/vprintf/test5/paltest_vprintf_test5
+c_runtime/vprintf/test6/paltest_vprintf_test6
+c_runtime/vprintf/test7/paltest_vprintf_test7
+c_runtime/vprintf/test8/paltest_vprintf_test8
+c_runtime/vprintf/test9/paltest_vprintf_test9
+c_runtime/vsprintf/test1/paltest_vsprintf_test1
+c_runtime/vsprintf/test10/paltest_vsprintf_test10
+c_runtime/vsprintf/test11/paltest_vsprintf_test11
+c_runtime/vsprintf/test12/paltest_vsprintf_test12
+c_runtime/vsprintf/test13/paltest_vsprintf_test13
+c_runtime/vsprintf/test14/paltest_vsprintf_test14
+c_runtime/vsprintf/test15/paltest_vsprintf_test15
+c_runtime/vsprintf/test16/paltest_vsprintf_test16
+c_runtime/vsprintf/test17/paltest_vsprintf_test17
+c_runtime/vsprintf/test18/paltest_vsprintf_test18
+c_runtime/vsprintf/test19/paltest_vsprintf_test19
+c_runtime/vsprintf/test2/paltest_vsprintf_test2
+c_runtime/vsprintf/test3/paltest_vsprintf_test3
+c_runtime/vsprintf/test4/paltest_vsprintf_test4
+c_runtime/vsprintf/test6/paltest_vsprintf_test6
+c_runtime/vsprintf/test7/paltest_vsprintf_test7
+c_runtime/vsprintf/test8/paltest_vsprintf_test8
+c_runtime/vsprintf/test9/paltest_vsprintf_test9
+c_runtime/vswprintf/test1/paltest_vswprintf_test1
+c_runtime/vswprintf/test10/paltest_vswprintf_test10
+c_runtime/vswprintf/test11/paltest_vswprintf_test11
+c_runtime/vswprintf/test12/paltest_vswprintf_test12
+c_runtime/vswprintf/test13/paltest_vswprintf_test13
+c_runtime/vswprintf/test14/paltest_vswprintf_test14
+c_runtime/vswprintf/test15/paltest_vswprintf_test15
+c_runtime/vswprintf/test16/paltest_vswprintf_test16
+c_runtime/vswprintf/test17/paltest_vswprintf_test17
+c_runtime/vswprintf/test18/paltest_vswprintf_test18
+c_runtime/vswprintf/test19/paltest_vswprintf_test19
+c_runtime/vswprintf/test2/paltest_vswprintf_test2
+c_runtime/vswprintf/test3/paltest_vswprintf_test3
+c_runtime/vswprintf/test4/paltest_vswprintf_test4
+c_runtime/vswprintf/test6/paltest_vswprintf_test6
+c_runtime/vswprintf/test7/paltest_vswprintf_test7
+c_runtime/vswprintf/test8/paltest_vswprintf_test8
+c_runtime/vswprintf/test9/paltest_vswprintf_test9
+c_runtime/wcscat/test1/paltest_wcscat_test1
+c_runtime/wcschr/test1/paltest_wcschr_test1
+c_runtime/wcscmp/test1/paltest_wcscmp_test1
+c_runtime/wcscpy/test1/paltest_wcscpy_test1
+c_runtime/wcslen/test1/paltest_wcslen_test1
+c_runtime/wcsncmp/test1/paltest_wcsncmp_test1
+c_runtime/wcsncpy/test1/paltest_wcsncpy_test1
+c_runtime/wcspbrk/test1/paltest_wcspbrk_test1
+c_runtime/wcsrchr/test1/paltest_wcsrchr_test1
+c_runtime/wcsstr/test1/paltest_wcsstr_test1
+c_runtime/wcstod/test1/paltest_wcstod_test1
+c_runtime/wcstod/test2/paltest_wcstod_test2
+c_runtime/wcstok/test1/paltest_wcstok_test1
+c_runtime/wcstoul/test1/paltest_wcstoul_test1
+c_runtime/wcstoul/test2/paltest_wcstoul_test2
+c_runtime/wcstoul/test3/paltest_wcstoul_test3
+c_runtime/wcstoul/test4/paltest_wcstoul_test4
+c_runtime/wcstoul/test5/paltest_wcstoul_test5
+c_runtime/wcstoul/test6/paltest_wcstoul_test6
+c_runtime/wprintf/test1/paltest_wprintf_test1
+c_runtime/wprintf/test2/paltest_wprintf_test2
+c_runtime/_alloca/test1/paltest_alloca_test1
+c_runtime/_fdopen/test1/paltest_fdopen_test1
+c_runtime/_finite/test1/paltest_finite_test1
+c_runtime/_finitef/test1/paltest_finitef_test1
+c_runtime/_isnan/test1/paltest_isnan_test1
+c_runtime/_isnanf/test1/paltest_isnanf_test1
+c_runtime/_itow/test1/paltest_itow_test1
+c_runtime/_putenv/test1/paltest_putenv_test1
+c_runtime/_putenv/test2/paltest_putenv_test2
+c_runtime/_putenv/test3/paltest_putenv_test3
+c_runtime/_putenv/test4/paltest_putenv_test4
+c_runtime/_rotl/test1/paltest_rotl_test1
+c_runtime/_rotr/test1/paltest_rotr_test1
+c_runtime/_snprintf_s/test1/paltest_snprintf_test1
+c_runtime/_snprintf_s/test10/paltest_snprintf_test10
+c_runtime/_snprintf_s/test11/paltest_snprintf_test11
+c_runtime/_snprintf_s/test12/paltest_snprintf_test12
+c_runtime/_snprintf_s/test13/paltest_snprintf_test13
+c_runtime/_snprintf_s/test14/paltest_snprintf_test14
+c_runtime/_snprintf_s/test15/paltest_snprintf_test15
+c_runtime/_snprintf_s/test16/paltest_snprintf_test16
+c_runtime/_snprintf_s/test17/paltest_snprintf_test17
+c_runtime/_snprintf_s/test18/paltest_snprintf_test18
+c_runtime/_snprintf_s/test19/paltest_snprintf_test19
+c_runtime/_snprintf_s/test2/paltest_snprintf_test2
+c_runtime/_snprintf_s/test3/paltest_snprintf_test3
+c_runtime/_snprintf_s/test4/paltest_snprintf_test4
+c_runtime/_snprintf_s/test6/paltest_snprintf_test6
+c_runtime/_snprintf_s/test7/paltest_snprintf_test7
+c_runtime/_snprintf_s/test8/paltest_snprintf_test8
+c_runtime/_snprintf_s/test9/paltest_snprintf_test9
+c_runtime/_snwprintf_s/test1/paltest_snwprintf_test1
+c_runtime/_snwprintf_s/test10/paltest_snwprintf_test10
+c_runtime/_snwprintf_s/test11/paltest_snwprintf_test11
+c_runtime/_snwprintf_s/test12/paltest_snwprintf_test12
+c_runtime/_snwprintf_s/test13/paltest_snwprintf_test13
+c_runtime/_snwprintf_s/test14/paltest_snwprintf_test14
+c_runtime/_snwprintf_s/test15/paltest_snwprintf_test15
+c_runtime/_snwprintf_s/test16/paltest_snwprintf_test16
+c_runtime/_snwprintf_s/test17/paltest_snwprintf_test17
+c_runtime/_snwprintf_s/test18/paltest_snwprintf_test18
+c_runtime/_snwprintf_s/test19/paltest_snwprintf_test19
+c_runtime/_snwprintf_s/test2/paltest_snwprintf_test2
+c_runtime/_snwprintf_s/test3/paltest_snwprintf_test3
+c_runtime/_snwprintf_s/test4/paltest_snwprintf_test4
+c_runtime/_snwprintf_s/test6/paltest_snwprintf_test6
+c_runtime/_snwprintf_s/test7/paltest_snwprintf_test7
+c_runtime/_snwprintf_s/test8/paltest_snwprintf_test8
+c_runtime/_snwprintf_s/test9/paltest_snwprintf_test9
+c_runtime/_stricmp/test1/paltest_stricmp_test1
+c_runtime/_strnicmp/test1/paltest_strnicmp_test1
+c_runtime/_vsnprintf_s/test1/paltest_vsnprintf_test1
+c_runtime/_vsnprintf_s/test10/paltest_vsnprintf_test10
+c_runtime/_vsnprintf_s/test11/paltest_vsnprintf_test11
+c_runtime/_vsnprintf_s/test12/paltest_vsnprintf_test12
+c_runtime/_vsnprintf_s/test13/paltest_vsnprintf_test13
+c_runtime/_vsnprintf_s/test14/paltest_vsnprintf_test14
+c_runtime/_vsnprintf_s/test15/paltest_vsnprintf_test15
+c_runtime/_vsnprintf_s/test16/paltest_vsnprintf_test16
+c_runtime/_vsnprintf_s/test17/paltest_vsnprintf_test17
+c_runtime/_vsnprintf_s/test18/paltest_vsnprintf_test18
+c_runtime/_vsnprintf_s/test19/paltest_vsnprintf_test19
+c_runtime/_vsnprintf_s/test2/paltest_vsnprintf_test2
+c_runtime/_vsnprintf_s/test3/paltest_vsnprintf_test3
+c_runtime/_vsnprintf_s/test4/paltest_vsnprintf_test4
+c_runtime/_vsnprintf_s/test6/paltest_vsnprintf_test6
+c_runtime/_vsnprintf_s/test7/paltest_vsnprintf_test7
+c_runtime/_vsnprintf_s/test8/paltest_vsnprintf_test8
+c_runtime/_vsnprintf_s/test9/paltest_vsnprintf_test9
+c_runtime/_vsnwprintf_s/test1/paltest_vsnwprintf_test1
+c_runtime/_vsnwprintf_s/test10/paltest_vsnwprintf_test10
+c_runtime/_vsnwprintf_s/test11/paltest_vsnwprintf_test11
+c_runtime/_vsnwprintf_s/test12/paltest_vsnwprintf_test12
+c_runtime/_vsnwprintf_s/test13/paltest_vsnwprintf_test13
+c_runtime/_vsnwprintf_s/test14/paltest_vsnwprintf_test14
+c_runtime/_vsnwprintf_s/test15/paltest_vsnwprintf_test15
+c_runtime/_vsnwprintf_s/test16/paltest_vsnwprintf_test16
+c_runtime/_vsnwprintf_s/test17/paltest_vsnwprintf_test17
+c_runtime/_vsnwprintf_s/test18/paltest_vsnwprintf_test18
+c_runtime/_vsnwprintf_s/test19/paltest_vsnwprintf_test19
+c_runtime/_vsnwprintf_s/test2/paltest_vsnwprintf_test2
+c_runtime/_vsnwprintf_s/test3/paltest_vsnwprintf_test3
+c_runtime/_vsnwprintf_s/test4/paltest_vsnwprintf_test4
+c_runtime/_vsnwprintf_s/test6/paltest_vsnwprintf_test6
+c_runtime/_vsnwprintf_s/test7/paltest_vsnwprintf_test7
+c_runtime/_vsnwprintf_s/test8/paltest_vsnwprintf_test8
+c_runtime/_vsnwprintf_s/test9/paltest_vsnwprintf_test9
+c_runtime/_wcsicmp/test1/paltest_wcsicmp_test1
+c_runtime/_wcslwr/test1/paltest_wcslwr_test1
+c_runtime/_wcsnicmp/test1/paltest_wcsnicmp_test1
+c_runtime/_wfopen/test1/paltest_wfopen_test1
+c_runtime/_wfopen/test2/paltest_wfopen_test2
+c_runtime/_wfopen/test3/paltest_wfopen_test3
+c_runtime/_wfopen/test4/paltest_wfopen_test4
+c_runtime/_wfopen/test5/paltest_wfopen_test5
+c_runtime/_wfopen/test6/paltest_wfopen_test6
+c_runtime/_wfopen/test7/paltest_wfopen_test7
+c_runtime/_wtoi/test1/paltest_wtoi_test1
+c_runtime/__iscsym/test1/paltest_iscsym_test1
+debug_api/OutputDebugStringA/test1/paltest_outputdebugstringa_test1
+debug_api/OutputDebugStringW/test1/paltest_outputdebugstringw_test1
+exception_handling/RaiseException/test1/paltest_raiseexception_test1
+exception_handling/RaiseException/test2/paltest_raiseexception_test2
+exception_handling/RaiseException/test3/paltest_raiseexception_test3
+filemapping_memmgt/CreateFileMappingA/test1/paltest_createfilemappinga_test1
+filemapping_memmgt/CreateFileMappingA/test3/paltest_createfilemappinga_test3
+filemapping_memmgt/CreateFileMappingA/test4/paltest_createfilemappinga_test4
+filemapping_memmgt/CreateFileMappingA/test5/paltest_createfilemappinga_test5
+filemapping_memmgt/CreateFileMappingA/test6/paltest_createfilemappinga_test6
+filemapping_memmgt/CreateFileMappingA/test7/paltest_createfilemappinga_test7
+filemapping_memmgt/CreateFileMappingA/test8/paltest_createfilemappinga_test8
+filemapping_memmgt/CreateFileMappingA/test9/paltest_createfilemappinga_test9
+filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/paltest_createfilemappingw_createfilemapping_neg1
+filemapping_memmgt/CreateFileMappingW/test1/paltest_createfilemappingw_test1
+filemapping_memmgt/CreateFileMappingW/test3/paltest_createfilemappingw_test3
+filemapping_memmgt/CreateFileMappingW/test4/paltest_createfilemappingw_test4
+filemapping_memmgt/CreateFileMappingW/test5/paltest_createfilemappingw_test5
+filemapping_memmgt/CreateFileMappingW/test6/paltest_createfilemappingw_test6
+filemapping_memmgt/CreateFileMappingW/test7/paltest_createfilemappingw_test7
+filemapping_memmgt/CreateFileMappingW/test8/paltest_createfilemappingw_test8
+filemapping_memmgt/CreateFileMappingW/test9/paltest_createfilemappingw_test9
+filemapping_memmgt/FreeLibrary/test1/paltest_freelibrary_test1
+filemapping_memmgt/FreeLibrary/test2/paltest_freelibrary_test2
+filemapping_memmgt/FreeLibraryAndExitThread/test1/paltest_freelibraryandexitthread_test1
+filemapping_memmgt/GetModuleFileNameA/test1/paltest_getmodulefilenamea_test1
+filemapping_memmgt/GetModuleFileNameA/test2/paltest_getmodulefilenamea_test2
+filemapping_memmgt/GetModuleFileNameW/test1/paltest_getmodulefilenamew_test1
+filemapping_memmgt/GetModuleFileNameW/test2/paltest_getmodulefilenamew_test2
+filemapping_memmgt/GetProcAddress/test1/paltest_getprocaddress_test1
+filemapping_memmgt/GetProcAddress/test2/paltest_getprocaddress_test2
+filemapping_memmgt/LocalAlloc/test1/paltest_localalloc_test1
+filemapping_memmgt/LocalFree/test1/paltest_localfree_test1
+filemapping_memmgt/LocalFree/test2/paltest_localfree_test2
+filemapping_memmgt/MapViewOfFile/test1/paltest_mapviewoffile_test1
+filemapping_memmgt/MapViewOfFile/test2/paltest_mapviewoffile_test2
+filemapping_memmgt/MapViewOfFile/test3/paltest_mapviewoffile_test3
+filemapping_memmgt/MapViewOfFile/test4/paltest_mapviewoffile_test4
+filemapping_memmgt/MapViewOfFile/test5/paltest_mapviewoffile_test5
+filemapping_memmgt/MapViewOfFile/test6/paltest_mapviewoffile_test6
+filemapping_memmgt/OpenFileMappingA/test1/paltest_openfilemappinga_test1
+filemapping_memmgt/OpenFileMappingA/test2/paltest_openfilemappinga_test2
+filemapping_memmgt/OpenFileMappingA/test3/paltest_openfilemappinga_test3
+filemapping_memmgt/OpenFileMappingW/test1/paltest_openfilemappingw_test1
+filemapping_memmgt/OpenFileMappingW/test2/paltest_openfilemappingw_test2
+filemapping_memmgt/OpenFileMappingW/test3/paltest_openfilemappingw_test3
+filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/paltest_probememory_probememory_neg1
+filemapping_memmgt/ProbeMemory/test1/paltest_probememory_test1
+filemapping_memmgt/UnmapViewOfFile/test1/paltest_unmapviewoffile_test1
+filemapping_memmgt/UnmapViewOfFile/test2/paltest_unmapviewoffile_test2
+filemapping_memmgt/VirtualAlloc/test1/paltest_virtualalloc_test1
+filemapping_memmgt/VirtualAlloc/test10/paltest_virtualalloc_test10
+filemapping_memmgt/VirtualAlloc/test11/paltest_virtualalloc_test11
+filemapping_memmgt/VirtualAlloc/test12/paltest_virtualalloc_test12
+filemapping_memmgt/VirtualAlloc/test13/paltest_virtualalloc_test13
+filemapping_memmgt/VirtualAlloc/test14/paltest_virtualalloc_test14
+filemapping_memmgt/VirtualAlloc/test15/paltest_virtualalloc_test15
+filemapping_memmgt/VirtualAlloc/test16/paltest_virtualalloc_test16
+filemapping_memmgt/VirtualAlloc/test17/paltest_virtualalloc_test17
+filemapping_memmgt/VirtualAlloc/test18/paltest_virtualalloc_test18
+filemapping_memmgt/VirtualAlloc/test19/paltest_virtualalloc_test19
+filemapping_memmgt/VirtualAlloc/test2/paltest_virtualalloc_test2
+filemapping_memmgt/VirtualAlloc/test20/paltest_virtualalloc_test20
+filemapping_memmgt/VirtualAlloc/test21/paltest_virtualalloc_test21
+filemapping_memmgt/VirtualAlloc/test22/paltest_virtualalloc_test22
+filemapping_memmgt/VirtualAlloc/test3/paltest_virtualalloc_test3
+filemapping_memmgt/VirtualAlloc/test4/paltest_virtualalloc_test4
+filemapping_memmgt/VirtualAlloc/test5/paltest_virtualalloc_test5
+filemapping_memmgt/VirtualAlloc/test6/paltest_virtualalloc_test6
+filemapping_memmgt/VirtualAlloc/test7/paltest_virtualalloc_test7
+filemapping_memmgt/VirtualAlloc/test8/paltest_virtualalloc_test8
+filemapping_memmgt/VirtualAlloc/test9/paltest_virtualalloc_test9
+filemapping_memmgt/VirtualFree/test1/paltest_virtualfree_test1
+filemapping_memmgt/VirtualFree/test2/paltest_virtualfree_test2
+filemapping_memmgt/VirtualFree/test3/paltest_virtualfree_test3
+filemapping_memmgt/VirtualProtect/test1/paltest_virtualprotect_test1
+filemapping_memmgt/VirtualProtect/test2/paltest_virtualprotect_test2
+filemapping_memmgt/VirtualProtect/test3/paltest_virtualprotect_test3
+filemapping_memmgt/VirtualProtect/test4/paltest_virtualprotect_test4
+filemapping_memmgt/VirtualProtect/test6/paltest_virtualprotect_test6
+filemapping_memmgt/VirtualProtect/test7/paltest_virtualprotect_test7
+filemapping_memmgt/VirtualQuery/test1/paltest_virtualquery_test1
+file_io/CopyFileA/test1/paltest_copyfilea_test1
+file_io/CopyFileA/test2/paltest_copyfilea_test2
+file_io/CopyFileA/test3/paltest_copyfilea_test3
+file_io/CopyFileA/test4/paltest_copyfilea_test4
+file_io/CopyFileW/test1/paltest_copyfilew_test1
+file_io/CopyFileW/test2/paltest_copyfilew_test2
+file_io/CopyFileW/test3/paltest_copyfilew_test3
+file_io/CreateFileA/test1/paltest_createfilea_test1
+file_io/CreateFileW/test1/paltest_createfilew_test1
+file_io/DeleteFileA/test1/paltest_deletefilea_test1
+file_io/DeleteFileW/test1/paltest_deletefilew_test1
+file_io/errorpathnotfound/test1/paltest_errorpathnotfound_test1
+file_io/errorpathnotfound/test2/paltest_errorpathnotfound_test2
+file_io/FILECanonicalizePath/paltest_filecanonicalizepath_test1
+file_io/FindClose/test1/paltest_findclose_test1
+file_io/FindFirstFileA/test1/paltest_findfirstfilea_test1
+file_io/FindFirstFileW/test1/paltest_findfirstfilew_test1
+file_io/FindNextFileA/test1/paltest_findnextfilea_test1
+file_io/FindNextFileA/test2/paltest_findnextfilea_test2
+file_io/FindNextFileW/test1/paltest_findnextfilew_test1
+file_io/FindNextFileW/test2/paltest_findnextfilew_test2
+file_io/FlushFileBuffers/test1/paltest_flushfilebuffers_test1
+file_io/GetConsoleOutputCP/test1/paltest_getconsoleoutputcp_test1
+file_io/GetCurrentDirectoryA/test1/paltest_getcurrentdirectorya_test1
+file_io/GetCurrentDirectoryW/test1/paltest_getcurrentdirectoryw_test1
+file_io/GetFileAttributesA/test1/paltest_getfileattributesa_test1
+file_io/GetFileAttributesExW/test1/paltest_getfileattributesexw_test1
+file_io/GetFileAttributesExW/test2/paltest_getfileattributesexw_test2
+file_io/GetFileAttributesW/test1/paltest_getfileattributesw_test1
+file_io/GetFileSize/test1/paltest_getfilesize_test1
+file_io/GetFileSizeEx/test1/paltest_getfilesizeex_test1
+file_io/GetFullPathNameA/test1/paltest_getfullpathnamea_test1
+file_io/GetFullPathNameA/test2/paltest_getfullpathnamea_test2
+file_io/GetFullPathNameA/test3/paltest_getfullpathnamea_test3
+file_io/GetFullPathNameA/test4/paltest_getfullpathnamea_test4
+file_io/GetFullPathNameW/test1/paltest_getfullpathnamew_test1
+file_io/GetFullPathNameW/test2/paltest_getfullpathnamew_test2
+file_io/GetFullPathNameW/test3/paltest_getfullpathnamew_test3
+file_io/GetFullPathNameW/test4/paltest_getfullpathnamew_test4
+file_io/GetStdHandle/test1/paltest_getstdhandle_test1
+file_io/GetStdHandle/test2/paltest_getstdhandle_test2
+file_io/GetSystemTime/test1/paltest_getsystemtime_test1
+file_io/GetSystemTimeAsFileTime/test1/paltest_getsystemtimeasfiletime_test1
+file_io/GetTempFileNameA/test1/paltest_gettempfilenamea_test1
+file_io/GetTempFileNameA/test2/paltest_gettempfilenamea_test2
+file_io/GetTempFileNameA/test3/paltest_gettempfilenamea_test3
+file_io/GetTempFileNameW/test1/paltest_gettempfilenamew_test1
+file_io/GetTempFileNameW/test2/paltest_gettempfilenamew_test2
+file_io/GetTempFileNameW/test3/paltest_gettempfilenamew_test3
+file_io/gettemppatha/test1/paltest_gettemppatha_test1
+file_io/GetTempPathW/test1/paltest_gettemppathw_test1
+file_io/MoveFileExA/test1/paltest_movefileexa_test1
+file_io/MoveFileExW/test1/paltest_movefileexw_test1
+file_io/ReadFile/test1/paltest_readfile_test1
+file_io/ReadFile/test2/paltest_readfile_test2
+file_io/ReadFile/test3/paltest_readfile_test3
+file_io/ReadFile/test4/paltest_readfile_test4
+file_io/SearchPathW/test1/paltest_searchpathw_test1
+file_io/SetEndOfFile/test1/paltest_setendoffile_test1
+file_io/SetEndOfFile/test2/paltest_setendoffile_test2
+file_io/SetEndOfFile/test3/paltest_setendoffile_test3
+file_io/SetEndOfFile/test4/paltest_setendoffile_test4
+file_io/SetEndOfFile/test5/paltest_setendoffile_test5
+file_io/SetFilePointer/test1/paltest_setfilepointer_test1
+file_io/SetFilePointer/test2/paltest_setfilepointer_test2
+file_io/SetFilePointer/test3/paltest_setfilepointer_test3
+file_io/SetFilePointer/test4/paltest_setfilepointer_test4
+file_io/SetFilePointer/test5/paltest_setfilepointer_test5
+file_io/SetFilePointer/test6/paltest_setfilepointer_test6
+file_io/SetFilePointer/test7/paltest_setfilepointer_test7
+file_io/WriteFile/test1/paltest_writefile_test1
+file_io/WriteFile/test2/paltest_writefile_test2
+file_io/WriteFile/test3/paltest_writefile_test3
+file_io/WriteFile/test4/paltest_writefile_test4
+file_io/WriteFile/test5/paltest_writefile_test5
+loader/LoadLibraryA/test1/paltest_loadlibrarya_test1
+loader/LoadLibraryA/test2/paltest_loadlibrarya_test2
+loader/LoadLibraryA/test3/paltest_loadlibrarya_test3
+loader/LoadLibraryA/test5/paltest_loadlibrarya_test5
+loader/LoadLibraryA/test7/paltest_loadlibrarya_test7
+loader/LoadLibraryW/test1/paltest_loadlibraryw_test1
+loader/LoadLibraryW/test2/paltest_loadlibraryw_test2
+loader/LoadLibraryW/test3/paltest_loadlibraryw_test3
+loader/LoadLibraryW/test5/paltest_loadlibraryw_test5
+locale_info/GetACP/test1/paltest_getacp_test1
+locale_info/MultiByteToWideChar/test1/paltest_multibytetowidechar_test1
+locale_info/MultiByteToWideChar/test2/paltest_multibytetowidechar_test2
+locale_info/MultiByteToWideChar/test3/paltest_multibytetowidechar_test3
+locale_info/MultiByteToWideChar/test4/paltest_multibytetowidechar_test4
+locale_info/WideCharToMultiByte/test1/paltest_widechartomultibyte_test1
+locale_info/WideCharToMultiByte/test2/paltest_widechartomultibyte_test2
+locale_info/WideCharToMultiByte/test3/paltest_widechartomultibyte_test3
+locale_info/WideCharToMultiByte/test4/paltest_widechartomultibyte_test4
+locale_info/WideCharToMultiByte/test5/paltest_widechartomultibyte_test5
+miscellaneous/CGroup/test1/paltest_cgroup_test1
+miscellaneous/CloseHandle/test1/paltest_closehandle_test1
+miscellaneous/CloseHandle/test2/paltest_closehandle_test2
+miscellaneous/CreatePipe/test1/paltest_createpipe_test1
+miscellaneous/FlushInstructionCache/test1/paltest_flushinstructioncache_test1
+miscellaneous/FormatMessageW/test1/paltest_formatmessagew_test1
+miscellaneous/FormatMessageW/test2/paltest_formatmessagew_test2
+miscellaneous/FormatMessageW/test3/paltest_formatmessagew_test3
+miscellaneous/FormatMessageW/test4/paltest_formatmessagew_test4
+miscellaneous/FormatMessageW/test5/paltest_formatmessagew_test5
+miscellaneous/FormatMessageW/test6/paltest_formatmessagew_test6
+miscellaneous/FreeEnvironmentStringsW/test1/paltest_freeenvironmentstringsw_test1
+miscellaneous/FreeEnvironmentStringsW/test2/paltest_freeenvironmentstringsw_test2
+miscellaneous/GetCommandLineW/test1/paltest_getcommandlinew_test1
+miscellaneous/GetEnvironmentStringsW/test1/paltest_getenvironmentstringsw_test1
+miscellaneous/GetEnvironmentVariableA/test1/paltest_getenvironmentvariablea_test1
+miscellaneous/GetEnvironmentVariableA/test2/paltest_getenvironmentvariablea_test2
+miscellaneous/GetEnvironmentVariableA/test3/paltest_getenvironmentvariablea_test3
+miscellaneous/GetEnvironmentVariableA/test4/paltest_getenvironmentvariablea_test4
+miscellaneous/GetEnvironmentVariableA/test5/paltest_getenvironmentvariablea_test5
+miscellaneous/GetEnvironmentVariableA/test6/paltest_getenvironmentvariablea_test6
+miscellaneous/GetEnvironmentVariableW/test1/paltest_getenvironmentvariablew_test1
+miscellaneous/GetEnvironmentVariableW/test2/paltest_getenvironmentvariablew_test2
+miscellaneous/GetEnvironmentVariableW/test3/paltest_getenvironmentvariablew_test3
+miscellaneous/GetEnvironmentVariableW/test4/paltest_getenvironmentvariablew_test4
+miscellaneous/GetEnvironmentVariableW/test5/paltest_getenvironmentvariablew_test5
+miscellaneous/GetEnvironmentVariableW/test6/paltest_getenvironmentvariablew_test6
+miscellaneous/GetLastError/test1/paltest_getlasterror_test1
+miscellaneous/GetSystemInfo/test1/paltest_getsysteminfo_test1
+miscellaneous/GetTickCount/test1/paltest_gettickcount_test1
+miscellaneous/GlobalMemoryStatusEx/test1/paltest_globalmemorystatusex_test1
+miscellaneous/InterlockedBit/test1/paltest_interlockedbit_test1
+miscellaneous/InterlockedBit/test2/paltest_interlockedbit_test2
+miscellaneous/InterlockedCompareExchange/test1/paltest_interlockedcompareexchange_test1
+miscellaneous/InterlockedCompareExchange/test2/paltest_interlockedcompareexchange_test2
+miscellaneous/InterlockedCompareExchange64/test1/paltest_interlockedcompareexchange64_test1
+miscellaneous/InterlockedCompareExchange64/test2/paltest_interlockedcompareexchange64_test2
+miscellaneous/InterlockedCompareExchangePointer/test1/paltest_interlockedcompareexchangepointer_test1
+miscellaneous/InterlockedDecrement/test1/paltest_interlockeddecrement_test1
+miscellaneous/InterlockedDecrement/test2/paltest_interlockeddecrement_test2
+miscellaneous/InterlockedDecrement64/test1/paltest_interlockeddecrement64_test1
+miscellaneous/InterlockedDecrement64/test2/paltest_interlockeddecrement64_test2
+miscellaneous/InterlockedExchange/test1/paltest_interlockedexchange_test1
+miscellaneous/InterlockedExchange64/test1/paltest_interlockedexchange64_test1
+miscellaneous/InterLockedExchangeAdd/test1/paltest_interlockedexchangeadd_test1
+miscellaneous/InterlockedExchangePointer/test1/paltest_interlockedexchangepointer_test1
+miscellaneous/InterlockedIncrement/test1/paltest_interlockedincrement_test1
+miscellaneous/InterlockedIncrement/test2/paltest_interlockedincrement_test2
+miscellaneous/InterlockedIncrement64/test1/paltest_interlockedincrement64_test1
+miscellaneous/InterlockedIncrement64/test2/paltest_interlockedincrement64_test2
+miscellaneous/queryperformancecounter/test1/paltest_queryperformancecounter_test1
+miscellaneous/queryperformancefrequency/test1/paltest_queryperformancefrequency_test1
+miscellaneous/SetEnvironmentVariableA/test1/paltest_setenvironmentvariablea_test1
+miscellaneous/SetEnvironmentVariableA/test2/paltest_setenvironmentvariablea_test2
+miscellaneous/SetEnvironmentVariableA/test3/paltest_setenvironmentvariablea_test3
+miscellaneous/SetEnvironmentVariableA/test4/paltest_setenvironmentvariablea_test4
+miscellaneous/SetEnvironmentVariableW/test1/paltest_setenvironmentvariablew_test1
+miscellaneous/SetEnvironmentVariableW/test2/paltest_setenvironmentvariablew_test2
+miscellaneous/SetEnvironmentVariableW/test3/paltest_setenvironmentvariablew_test3
+miscellaneous/SetEnvironmentVariableW/test4/paltest_setenvironmentvariablew_test4
+miscellaneous/SetLastError/test1/paltest_setlasterror_test1
+miscellaneous/_i64tow/test1/paltest_i64tow_test1
+pal_specific/PAL_errno/test1/paltest_pal_errno_test1
+pal_specific/PAL_GetPALDirectoryW/test1/paltest_pal_getpaldirectoryw_test1
+pal_specific/PAL_GetUserTempDirectoryW/test1/paltest_pal_getusertempdirectoryw_test1
+pal_specific/PAL_Initialize_Terminate/test1/paltest_pal_initialize_terminate_test1
+pal_specific/PAL_Initialize_Terminate/test2/paltest_pal_initialize_terminate_test2
+pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/paltest_pal_registerlibraryw_unregisterlibraryw_test1
+pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/paltest_reg_unreg_libraryw_neg
+samples/test1/paltest_samples_test1
+samples/test2/paltest_samples_test2
+threading/CreateEventW/test1/paltest_createeventw_test1
+threading/CreateEventW/test2/paltest_createeventw_test2
+threading/CreateEventW/test3/paltest_createeventw_test3
+threading/CreateMutexW_ReleaseMutex/test1/paltest_createmutexw_releasemutex_test1
+threading/CreateMutexW_ReleaseMutex/test2/paltest_createmutexw_releasemutex_test2
+threading/CreateProcessA/test1/paltest_createprocessa_test1
+threading/CreateProcessA/test2/paltest_createprocessa_test2
+threading/CreateProcessW/test1/paltest_createprocessw_test1
+threading/CreateProcessW/test2/paltest_createprocessw_test2
+threading/CreateSemaphoreW_ReleaseSemaphore/test1/paltest_createsemaphorew_releasesemaphore_test1
+threading/CreateSemaphoreW_ReleaseSemaphore/test2/paltest_createsemaphorew_releasesemaphore_test2
+threading/CreateSemaphoreW_ReleaseSemaphore/test3/paltest_createsemaphorew_releasesemaphore_test3
+threading/CreateThread/test1/paltest_createthread_test1
+threading/CreateThread/test2/paltest_createthread_test2
+threading/CreateThread/test3/paltest_createthread_test3
+threading/CriticalSectionFunctions/test1/paltest_criticalsectionfunctions_test1
+threading/CriticalSectionFunctions/test2/paltest_criticalsectionfunctions_test2
+threading/CriticalSectionFunctions/test3/paltest_criticalsectionfunctions_test3
+threading/CriticalSectionFunctions/test4/paltest_criticalsectionfunctions_test4
+threading/CriticalSectionFunctions/test5/paltest_criticalsectionfunctions_test5
+threading/CriticalSectionFunctions/test6/paltest_criticalsectionfunctions_test6
+threading/CriticalSectionFunctions/test7/paltest_criticalsectionfunctions_test7
+threading/CriticalSectionFunctions/test8/paltest_criticalsectionfunctions_test8
+threading/DuplicateHandle/test1/paltest_duplicatehandle_test1
+threading/DuplicateHandle/test10/paltest_duplicatehandle_test10
+threading/DuplicateHandle/test11/paltest_duplicatehandle_test11
+threading/DuplicateHandle/test12/paltest_duplicatehandle_test12
+threading/DuplicateHandle/test2/paltest_duplicatehandle_test2
+threading/DuplicateHandle/test3/paltest_duplicatehandle_test3
+threading/DuplicateHandle/test4/paltest_duplicatehandle_test4
+threading/DuplicateHandle/test5/paltest_duplicatehandle_test5
+threading/DuplicateHandle/test6/paltest_duplicatehandle_test6
+threading/DuplicateHandle/test7/paltest_duplicatehandle_test7
+threading/DuplicateHandle/test8/paltest_duplicatehandle_test8
+threading/DuplicateHandle/test9/paltest_duplicatehandle_test9
+threading/ExitProcess/test1/paltest_exitprocess_test1
+threading/ExitProcess/test2/paltest_exitprocess_test2
+threading/ExitProcess/test3/paltest_exitprocess_test3
+threading/ExitThread/test1/paltest_exitthread_test1
+threading/ExitThread/test2/paltest_exitthread_test2
+threading/GetCurrentProcess/test1/paltest_getcurrentprocess_test1
+threading/GetCurrentProcessId/test1/paltest_getcurrentprocessid_test1
+threading/GetCurrentThread/test1/paltest_getcurrentthread_test1
+threading/GetCurrentThread/test2/paltest_getcurrentthread_test2
+threading/GetCurrentThreadId/test1/paltest_getcurrentthreadid_test1
+threading/GetExitCodeProcess/test1/paltest_getexitcodeprocess_test1
+threading/GetProcessTimes/test2/paltest_getprocesstimes_test2
+threading/GetThreadTimes/test1/paltest_getthreadtimes_test1
+threading/NamedMutex/test1/paltest_namedmutex_test1
+threading/OpenEventW/test1/paltest_openeventw_test1
+threading/OpenEventW/test2/paltest_openeventw_test2
+threading/OpenEventW/test3/paltest_openeventw_test3
+threading/OpenEventW/test4/paltest_openeventw_test4
+threading/OpenEventW/test5/paltest_openeventw_test5
+threading/OpenProcess/test1/paltest_openprocess_test1
+threading/QueryThreadCycleTime/test1/paltest_querythreadcycletime_test1
+threading/QueueUserAPC/test1/paltest_queueuserapc_test1
+threading/QueueUserAPC/test2/paltest_queueuserapc_test2
+threading/QueueUserAPC/test3/paltest_queueuserapc_test3
+threading/QueueUserAPC/test4/paltest_queueuserapc_test4
+threading/QueueUserAPC/test5/paltest_queueuserapc_test5
+threading/QueueUserAPC/test6/paltest_queueuserapc_test6
+threading/QueueUserAPC/test7/paltest_queueuserapc_test7
+threading/ReleaseMutex/test3/paltest_releasemutex_test3
+threading/releasesemaphore/test1/paltest_releasesemaphore_test1
+threading/ResetEvent/test1/paltest_resetevent_test1
+threading/ResetEvent/test2/paltest_resetevent_test2
+threading/ResetEvent/test3/paltest_resetevent_test3
+threading/ResetEvent/test4/paltest_resetevent_test4
+threading/ResumeThread/test1/paltest_resumethread_test1
+threading/SetErrorMode/test1/paltest_seterrormode_test1
+threading/SetEvent/test1/paltest_setevent_test1
+threading/SetEvent/test2/paltest_setevent_test2
+threading/SetEvent/test3/paltest_setevent_test3
+threading/SetEvent/test4/paltest_setevent_test4
+threading/SignalObjectAndWait/paltest_signalobjectandwaittest
+threading/Sleep/test1/paltest_sleep_test1
+threading/Sleep/test2/paltest_sleep_test2
+threading/SleepEx/test1/paltest_sleepex_test1
+threading/SleepEx/test2/paltest_sleepex_test2
+threading/SwitchToThread/test1/paltest_switchtothread_test1
+threading/TerminateProcess/test1/paltest_terminateprocess_test1
+threading/ThreadPriority/test1/paltest_threadpriority_test1
+threading/WaitForMultipleObjects/test1/paltest_waitformultipleobjects_test1
+threading/WaitForMultipleObjectsEx/test1/paltest_waitformultipleobjectsex_test1
+threading/WaitForMultipleObjectsEx/test2/paltest_waitformultipleobjectsex_test2
+threading/WaitForMultipleObjectsEx/test3/paltest_waitformultipleobjectsex_test3
+threading/WaitForMultipleObjectsEx/test4/paltest_waitformultipleobjectsex_test4
+threading/WaitForMultipleObjectsEx/test5/paltest_waitformultipleobjectsex_test5
+threading/WaitForMultipleObjectsEx/test6/paltest_waitformultipleobjectsex_test6
+threading/WaitForSingleObject/test1/paltest_waitforsingleobject_test1
+threading/WaitForSingleObject/WFSOExMutexTest/paltest_waitforsingleobject_wfsoexmutextest
+threading/WaitForSingleObject/WFSOExSemaphoreTest/paltest_waitforsingleobject_wfsoexsemaphoretest
+threading/WaitForSingleObject/WFSOExThreadTest/paltest_waitforsingleobject_wfsoexthreadtest
+threading/WaitForSingleObject/WFSOMutexTest/paltest_waitforsingleobject_wfsomutextest
+threading/WaitForSingleObject/WFSOProcessTest/paltest_waitforsingleobject_wfsoprocesstest
+threading/WaitForSingleObject/WFSOSemaphoreTest/paltest_waitforsingleobject_wfsosemaphoretest
+threading/WaitForSingleObject/WFSOThreadTest/paltest_waitforsingleobject_wfsothreadtest
+threading/YieldProcessor/test1/paltest_yieldprocessor_test1
--- /dev/null
+composite/object_management/event/nonshared/paltest_event_nonshared
+composite/object_management/event/shared/paltest_event_shared
+composite/object_management/mutex/nonshared/paltest_mutex_nonshared
+composite/object_management/mutex/shared/paltest_mutex_shared
+composite/object_management/semaphore/nonshared/paltest_semaphore_nonshared
+composite/object_management/semaphore/shared/paltest_semaphore_shared
+composite/synchronization/criticalsection/paltest_synchronization_criticalsection
+composite/synchronization/nativecriticalsection/paltest_synchronization_nativecriticalsection
+composite/synchronization/nativecs_interlocked/paltest_synchronization_nativecs_interlocked
+composite/threading/threadsuspension/paltest_threading_threadsuspension
+composite/threading/threadsuspension_switchthread/paltest_threading_threadsuspension_switchthread
+composite/wfmo/paltest_composite_wfmo
+c_runtime/iswprint/test1/paltest_iswprint_test1
+c_runtime/vprintf/test1/paltest_vprintf_test1
+c_runtime/_gcvt/test1/paltest_gcvt_test1
+c_runtime/_gcvt/test2/paltest_gcvt_test2
+debug_api/DebugBreak/test1/paltest_debugbreak_test1
+debug_api/WriteProcessMemory/test1/paltest_writeprocessmemory_test1
+debug_api/WriteProcessMemory/test3/paltest_writeprocessmemory_test3
+debug_api/WriteProcessMemory/test4/paltest_writeprocessmemory_test4
+exception_handling/pal_except/test1/paltest_pal_except_test1
+exception_handling/pal_except/test2/paltest_pal_except_test2
+exception_handling/pal_except/test3/paltest_pal_except_test3
+exception_handling/pal_except/test4/paltest_pal_except_test4
+exception_handling/pal_except/test5/paltest_pal_except_test5
+exception_handling/pal_except/test6/paltest_pal_except_test6
+exception_handling/pal_except/test7/paltest_pal_except_test7
+exception_handling/PAL_EXCEPT_FILTER/test1/paltest_pal_except_filter_test1
+exception_handling/PAL_EXCEPT_FILTER/test2/paltest_pal_except_filter_test2
+exception_handling/PAL_EXCEPT_FILTER/test3/paltest_pal_except_filter_test3
+exception_handling/PAL_EXCEPT_FILTER_EX/test1/paltest_pal_except_filter_ex_test1
+exception_handling/PAL_EXCEPT_FILTER_EX/test2/paltest_pal_except_filter_ex_test2
+exception_handling/PAL_EXCEPT_FILTER_EX/test3/paltest_pal_except_filter_ex_test3
+exception_handling/pal_finally/test1/paltest_pal_finally_test1
+exception_handling/PAL_TRY_EXCEPT/test1/paltest_pal_try_except_test1
+exception_handling/PAL_TRY_EXCEPT/test2/paltest_pal_try_except_test2
+exception_handling/PAL_TRY_EXCEPT_EX/test1/paltest_pal_try_except_ex_test1
+exception_handling/PAL_TRY_EXCEPT_EX/test2/paltest_pal_try_except_ex_test2
+exception_handling/PAL_TRY_EXCEPT_EX/test3/paltest_pal_try_except_ex_test3
+exception_handling/PAL_TRY_LEAVE_FINALLY/test1/paltest_pal_try_leave_finally_test1
+filemapping_memmgt/CreateFileMappingW/test2/paltest_createfilemappingw_test2
+loader/LoadLibraryA/test6/paltest_loadlibrarya_test6
+loader/LoadLibraryA/test8/paltest_loadlibrarya_test8
+locale_info/CompareStringA/test1/paltest_comparestringa_test1
+locale_info/CompareStringW/test1/paltest_comparestringw_test1
+locale_info/GetLocaleInfoW/test1/paltest_getlocaleinfow_test1
+locale_info/GetLocaleInfoW/test2/paltest_getlocaleinfow_test2
+miscellaneous/IsBadCodePtr/test1/paltest_isbadcodeptr_test1
+miscellaneous/IsBadReadPtr/test1/paltest_isbadreadptr_test1
+miscellaneous/IsBadWritePtr/test1/paltest_isbadwriteptr_test1
+miscellaneous/IsBadWritePtr/test2/paltest_isbadwriteptr_test2
+miscellaneous/IsBadWritePtr/test3/paltest_isbadwriteptr_test3
+miscellaneous/MessageBoxW/test1/paltest_messageboxw_test1
+miscellaneous/MessageBoxW/test2/paltest_messageboxw_test2
+pal_specific/PAL_get_stderr/test1/paltest_pal_get_stderr_test1
+pal_specific/PAL_get_stdin/test1/paltest_pal_get_stdin_test1
+pal_specific/PAL_get_stdout/test1/paltest_pal_get_stdout_test1
+++ /dev/null
-add_subdirectory(object_management)
-add_subdirectory(synchronization)
-add_subdirectory(threading)
-add_subdirectory(wfmo)
-
+++ /dev/null
-add_subdirectory(event)
-add_subdirectory(mutex)
-add_subdirectory(semaphore)
-
+++ /dev/null
-add_subdirectory(nonshared)
-add_subdirectory(shared)
-
+++ /dev/null
-set(SOURCES
- event.cpp
- main.cpp
-)
-
-add_executable(paltest_event_nonshared
- ${SOURCES}
-)
-
-add_dependencies(paltest_event_nonshared coreclrpal)
-
-target_link_libraries(paltest_event_nonshared
- ${COMMON_TEST_LIBRARIES}
- rt
-)
const char sTmpEventName[MAX_PATH_FNAME] = "StartTestEvent";
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_event_nonshared(LPVOID lpParam);
int GetParameters( int argc, char **argv)
{
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_event_nonshared_paltest_event_nonshared, "composite/object_management/event/nonshared/paltest_event_nonshared")
{
unsigned int i = 0;
HANDLE hThread[MAXIMUM_WAIT_OBJECTS];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_event_nonshared,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
testStatus = FAIL;
}
- PAL_Terminate();
+ PAL_TerminateEx(testStatus);
return testStatus;
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_event_nonshared (LPVOID lpParam)
{
unsigned int i = 0;
DWORD dwWaitResult;
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_event_nonshared_paltest_event_nonshared, "composite/object_management/event/nonshared/paltest_event_nonshared")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
+++ /dev/null
-set(SOURCES
- event.cpp
- main.cpp
-)
-
-add_executable(paltest_event_shared
- ${SOURCES}
-)
-
-add_dependencies(paltest_event_shared coreclrpal)
-
-target_link_libraries(paltest_event_shared
- ${COMMON_TEST_LIBRARIES}
- rt
-)
const char sTmpEventName[MAX_PATH] = "StartTestEvent";
char objectSuffix[MAX_PATH];
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_event_shared(LPVOID lpParam);
int GetParameters( int argc, char **argv)
{
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_event_shared_paltest_event_shared, "composite/object_management/event/shared/paltest_event_shared")
{
unsigned int i = 0;
HANDLE hThread[MAXIMUM_WAIT_OBJECTS];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_event_shared,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
return testStatus;
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_event_shared (LPVOID lpParam)
{
unsigned int i = 0;
DWORD dwWaitResult;
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_event_shared_paltest_event_shared, "composite/object_management/event/shared/paltest_event_shared")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
+++ /dev/null
-add_subdirectory(nonshared)
-add_subdirectory(shared)
-
+++ /dev/null
-set(SOURCES
- main.cpp
- mutex.cpp
-)
-
-add_executable(paltest_mutex_nonshared
- ${SOURCES}
-)
-
-add_dependencies(paltest_mutex_nonshared coreclrpal)
-
-target_link_libraries(paltest_mutex_nonshared
- ${COMMON_TEST_LIBRARIES}
- rt
-)
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_mutex_nonshared_paltest_mutex_nonshared, "composite/object_management/mutex/nonshared/paltest_mutex_nonshared")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
int testStatus;
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_mutex_nonshared(LPVOID lpParam);
int GetParameters( int argc, char **argv)
{
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_mutex_nonshared_paltest_mutex_nonshared, "composite/object_management/mutex/nonshared/paltest_mutex_nonshared")
{
unsigned int i = 0;
HANDLE hThread[MAXIMUM_WAIT_OBJECTS];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_mutex_nonshared,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
return testStatus;
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_mutex_nonshared (LPVOID lpParam)
{
unsigned int i = 0;
DWORD dwWaitResult;
+++ /dev/null
-set(SOURCES
- main.cpp
- mutex.cpp
-)
-
-add_executable(paltest_mutex_shared
- ${SOURCES}
-)
-
-add_dependencies(paltest_mutex_shared coreclrpal)
-
-target_link_libraries(paltest_mutex_shared
- ${COMMON_TEST_LIBRARIES}
- rt
-)
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_mutex_shared_paltest_mutex_shared, "composite/object_management/mutex/shared/paltest_mutex_shared")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
const char sTmpEventName[MAX_PATH] = "StartTestEvent";
char objectSuffix[MAX_PATH];
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_mutex_shared(LPVOID lpParam);
int GetParameters( int argc, char **argv)
{
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_mutex_shared_paltest_mutex_shared, "composite/object_management/mutex/shared/paltest_mutex_shared")
{
unsigned int i = 0;
HANDLE hThread[MAXIMUM_WAIT_OBJECTS];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_mutex_shared,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
return testStatus;
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_mutex_shared (LPVOID lpParam)
{
unsigned int i = 0;
DWORD dwWaitResult;
+++ /dev/null
-add_subdirectory(nonshared)
-add_subdirectory(shared)
-
+++ /dev/null
-set(SOURCES
- main.cpp
- semaphore.cpp
-)
-
-add_executable(paltest_semaphore_nonshared
- ${SOURCES}
-)
-
-add_dependencies(paltest_semaphore_nonshared coreclrpal)
-
-target_link_libraries(paltest_semaphore_nonshared
- ${COMMON_TEST_LIBRARIES}
- rt
-)
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_semaphore_nonshared_paltest_semaphore_nonshared, "composite/object_management/semaphore/nonshared/paltest_semaphore_nonshared")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
const char sTmpEventName[MAX_PATH] = "StartTestEvent";
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_semaphore_nonshared(LPVOID lpParam);
int GetParameters( int argc, char **argv)
{
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_semaphore_nonshared_paltest_semaphore_nonshared, "composite/object_management/semaphore/nonshared/paltest_semaphore_nonshared")
{
unsigned int i = 0;
HANDLE hThread[MAXIMUM_WAIT_OBJECTS];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_semaphore_nonshared,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
return PASS;
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_semaphore_nonshared (LPVOID lpParam)
{
unsigned int i = 0;
DWORD dwWaitResult;
+++ /dev/null
-set(SOURCES
- main.cpp
- semaphore.cpp
-)
-
-add_executable(paltest_semaphore_shared
- ${SOURCES}
-)
-
-add_dependencies(paltest_semaphore_shared coreclrpal)
-
-target_link_libraries(paltest_semaphore_shared
- ${COMMON_TEST_LIBRARIES}
- rt
-)
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_semaphore_shared_paltest_semaphore_shared, "composite/object_management/semaphore/shared/paltest_semaphore_shared")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
const char sTmpEventName[MAX_PATH] = "StartTestEvent";
char objectSuffix[MAX_PATH];
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_semaphore_shared(LPVOID lpParam);
int GetParameters( int argc, char **argv)
{
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_object_management_semaphore_shared_paltest_semaphore_shared, "composite/object_management/semaphore/shared/paltest_semaphore_shared")
{
unsigned int i = 0;
HANDLE hThread[MAXIMUM_WAIT_OBJECTS];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_semaphore_shared,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
return PASS;
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_semaphore_shared (LPVOID lpParam)
{
unsigned int i = 0;
DWORD dwWaitResult;
+++ /dev/null
-add_subdirectory(criticalsection)
-add_subdirectory(nativecriticalsection)
-add_subdirectory(nativecs_interlocked)
-
+++ /dev/null
-set(SOURCES
- criticalsection.cpp
- mainWrapper.cpp
-)
-
-add_executable(paltest_synchronization_criticalsection
- ${SOURCES}
-)
-
-add_dependencies(paltest_synchronization_criticalsection coreclrpal)
-
-target_link_libraries(paltest_synchronization_criticalsection
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main (int argc, char **argv)
+PALTEST(composite_synchronization_criticalsection_paltest_synchronization_criticalsection, "composite/synchronization/criticalsection/paltest_synchronization_criticalsection")
{
/*
}
//Main entry point for the application
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_synchronization_criticalsection_paltest_synchronization_criticalsection, "composite/synchronization/criticalsection/paltest_synchronization_criticalsection")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS]; //Array to hold Process handles
+++ /dev/null
-set(SOURCES
- mtx_critsect.cpp
- pal_composite_native_cs.cpp
- resultbuffer.cpp
-)
-
-add_executable(paltest_synchronization_nativecriticalsection
- ${SOURCES}
-)
-
-add_dependencies(paltest_synchronization_nativecriticalsection coreclrpal)
-
-target_link_libraries(paltest_synchronization_nativecriticalsection
- ${COMMON_TEST_LIBRARIES}
-)
-extern int main(int argc, char **argv)
+PALTEST(composite_synchronization_nativecriticalsection_paltest_synchronization_nativecriticalsection, "composite/synchronization/nativecriticalsection/paltest_synchronization_nativecriticalsection")
{
//Variable Declaration
pthread_t pthreads[640];
+++ /dev/null
-set(SOURCES
- interlocked.cpp
- mtx_critsect.cpp
- pal_composite_native_cs.cpp
- resultbuffer.cpp
-)
-
-add_executable(paltest_synchronization_nativecs_interlocked
- ${SOURCES}
-)
-
-add_dependencies(paltest_synchronization_nativecs_interlocked coreclrpal)
-
-target_link_libraries(paltest_synchronization_nativecs_interlocked
- ${COMMON_TEST_LIBRARIES}
-)
-extern int main(int argc, char **argv)
+PALTEST(composite_synchronization_nativecs_interlocked_paltest_synchronization_nativecs_interlocked, "composite/synchronization/nativecs_interlocked/paltest_synchronization_nativecs_interlocked")
{
//Variable Declaration
pthread_t pthreads[640];
+++ /dev/null
-add_subdirectory(threadsuspension)
-add_subdirectory(threadsuspension_switchthread)
-
+++ /dev/null
-set(SOURCES
- mainWrapper.cpp
- threadsuspension.cpp
-)
-
-add_executable(paltest_threading_threadsuspension
- ${SOURCES}
-)
-
-add_dependencies(paltest_threading_threadsuspension coreclrpal)
-
-target_link_libraries(paltest_threading_threadsuspension
- ${COMMON_TEST_LIBRARIES}
-)
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_threading_threadsuspension_paltest_threading_threadsuspension, "composite/threading/threadsuspension/paltest_threading_threadsuspension")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
+++ /dev/null
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense blackasdf dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
//Main Entry for the Thread Suspension Test Case
-int __cdecl main (int argc, char **argv)
+PALTEST(composite_threading_threadsuspension_paltest_threading_threadsuspension, "composite/threading/threadsuspension/paltest_threading_threadsuspension")
{
/*
+++ /dev/null
-set(SOURCES
- mainWrapper.cpp
- threadsuspension.cpp
-)
-
-add_executable(paltest_threading_threadsuspension_switchthread
- ${SOURCES}
-)
-
-add_dependencies(paltest_threading_threadsuspension_switchthread coreclrpal)
-
-target_link_libraries(paltest_threading_threadsuspension_switchthread
- ${COMMON_TEST_LIBRARIES}
-)
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_threading_threadsuspension_switchthread_paltest_threading_threadsuspension_switchthread, "composite/threading/threadsuspension_switchthread/paltest_threading_threadsuspension_switchthread")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
+++ /dev/null
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense blackasdf dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
-By Patricia Reaney
-LONDON (Reuters) - Europe, Africa and the Middle East are the best vantage points to see the first transit of Venus across the sun in more than a century on Tuesday, scientists said.
-
-Mostly clear skies are forecast in many parts of the three regions, but people were urged to be careful if they watch the rare event when it begins at 1:19 a.m. EDT because it could cause blindness. Views will be restricted from Asia and the Americas.
-
-Unlike a solar eclipse by the moon that is over in two or three minutes, Venus's transit -- which last occurred in 1882 -- will go on for six hours.
-
-The planet will appear as an intense black dot on the solar disc.
-
-Most of the sun will be visible as Venus crosses to the right from the bottom left side of the solar disc. Venus will be 26.7 million miles from earth.
-
-"Venus will be about 1/30 the size of the diameter of the sun, but it will be much darker and more intense than sunspots," said Dr Robert Walsh, of the University of Central Lancashire's Center for Astrophysics in northern England.
-
-Scientists recommend some form of indirect projection as the safest way to observe the phenomenon.
-
-"Never ever look directly at the sun with the naked eye or any sort of optical equipment -- telescope, binoculars or even digital camera," said Walsh.
-
-"Even if you glance at the sun for a short period of time you can damage your eye and lose some of your sight," he said.
-
-Internet sites will be covering the transit and observatories around the world have organized viewings.
-
-"Mainly Western Europe could see some high cloud that might prevent people from seeing it," said a spokesman for Britain's Meteorological Office. "The rest of Europe shouldn't be too bad. It should be fine."
-
-German astronomer Johannes Kepler first predicted a transit of Venus in 1627 but he died before he could witness one. English astronomer Jeremiah Horrocks first observed it in 1639.
-
-The transit occurs four times in every 243 years. There are two December transits, eight years apart, and then 121.5 years later there are two June transits, also eight years apart. After another 105.5 years the cycle begins again.
-
-The next transit will occur in 2012 when it will be visible from parts of Asia and the Pacific but not Europe.
//Main Entry for the Thread Suspension Test Case
-int __cdecl main (int argc, char **argv)
+PALTEST(composite_threading_threadsuspension_switchthread_paltest_threading_threadsuspension_switchthread, "composite/threading/threadsuspension_switchthread/paltest_threading_threadsuspension_switchthread")
{
/*
+++ /dev/null
-set(SOURCES
- main.cpp
- mutex.cpp
-)
-
-add_executable(paltest_composite_wfmo
- ${SOURCES}
-)
-
-add_dependencies(paltest_composite_wfmo coreclrpal)
-
-target_link_libraries(paltest_composite_wfmo
- ${COMMON_TEST_LIBRARIES}
- rt
-)
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_wfmo_paltest_composite_wfmo, "composite/wfmo/paltest_composite_wfmo")
{
unsigned int i = 0;
HANDLE hProcess[MAXIMUM_WAIT_OBJECTS];
int testStatus;
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_composite_wfmo(LPVOID lpParam);
int GetParameters( int argc, char **argv)
{
return 0;
}
- int __cdecl main(INT argc, CHAR **argv)
+PALTEST(composite_wfmo_paltest_composite_wfmo, "composite/wfmo/paltest_composite_wfmo")
{
unsigned int i = 0;
HANDLE hThread[MAXIMUM_WAIT_OBJECTS];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_composite_wfmo,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
return testStatus;
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_composite_wfmo (LPVOID lpParam)
{
unsigned int i = 0;
struct statistics stats;
+++ /dev/null
-# TODO: make these tests compile
-# add_subdirectory(DebugBreak)
-# add_subdirectory(WriteProcessMemory)
-
-add_subdirectory(OutputDebugStringA)
-add_subdirectory(OutputDebugStringW)
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_debugbreak_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_debugbreak_test1 coreclrpal)
-
-target_link_libraries(paltest_debugbreak_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_DebugBreak_test1_paltest_debugbreak_test1, "debug_api/DebugBreak/test1/paltest_debugbreak_test1")
{
BOOL bTry = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Debug
-Function = DebugBreak
-Name = DebugBreak test #1
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests that DebugBreak "works". This will require case by case
-= manual interpretation.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(TESTSOURCES
- test1.cpp
-)
-
-add_executable(paltest_outputdebugstringa_test1
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_outputdebugstringa_test1 coreclrpal)
-
-target_link_libraries(paltest_outputdebugstringa_test1
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- helper.cpp
-)
-
-add_executable(paltest_outputdebugstringa_test1_helper
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_outputdebugstringa_test1_helper coreclrpal)
-
-target_link_libraries(paltest_outputdebugstringa_test1_helper
- ${COMMON_TEST_LIBRARIES}
-)
-
-
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_OutputDebugStringA_test1_paltest_outputdebugstringa_test1_helper, "debug_api/OutputDebugStringA/test1/paltest_outputdebugstringa_test1_helper")
{
if(0 != (PAL_Initialize(argc, argv)))
{
char *ExpectedStr;
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_OutputDebugStringA_test1_paltest_outputdebugstringa_test1, "debug_api/OutputDebugStringA/test1/paltest_outputdebugstringa_test1")
{
PROCESS_INFORMATION pi;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Debug
-Function = OutputDebugStringA
-Name = OutputDebugStringA test #1
-TYPE = DEFAULT
-EXE1 = test1
-EXE2 = helper
-Description
-=Tests that OutputDebugString generates the correct debugging event behaviour.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_outputdebugstringw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_outputdebugstringw_test1 coreclrpal)
-
-target_link_libraries(paltest_outputdebugstringw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_OutputDebugStringW_test1_paltest_outputdebugstringw_test1, "debug_api/OutputDebugStringW/test1/paltest_outputdebugstringw_test1")
{
WCHAR *str1;
WCHAR *str2;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Debug
-Function = OutputDebugStringW
-Name = OutputDebugStringW test #1
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that OutputDebugString generates the correct debugging event behaviour.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(TESTSOURCES
- test1.cpp
-)
-
-add_executable(paltest_writeprocessmemory_test1
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_writeprocessmemory_test1 coreclrpal)
-
-target_link_libraries(paltest_writeprocessmemory_test1
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- helper.cpp
-)
-
-add_executable(paltest_writeprocessmemory_test1_helper
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_writeprocessmemory_test1_helper coreclrpal)
-
-target_link_libraries(paltest_writeprocessmemory_test1_helper
- ${COMMON_TEST_LIBRARIES}
-)
return TRUE;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_WriteProcessMemory_test1_paltest_writeprocessmemory_test1_helper, "debug_api/WriteProcessMemory/test1/paltest_writeprocessmemory_test1_helper")
{
BOOL success = TRUE; /* assume success */
Fail("");
}
- PAL_Terminate();
+ PAL_TerminateEx(success ? PASS : FAIL);
return success ? PASS : FAIL;
}
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_WriteProcessMemory_test1_paltest_writeprocessmemory_test1, "debug_api/WriteProcessMemory/test1/paltest_writeprocessmemory_test1")
{
PROCESS_INFORMATION pi;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Debug
-Function = WriteProcessMemory
-Name = Check that writing text to process memory succeeds.
-TYPE = DEFAULT
-EXE1 = test1
-EXE2 = helper
-Description
-= Create a child process and attempt to write to its memory
-= at the places and lengths it specifies via a data file.
-= the child verifies that all the specified memory was altered
-= with no overruns.
+++ /dev/null
-set(TESTSOURCES
- test3.cpp
-)
-
-add_executable(paltest_writeprocessmemory_test3
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_writeprocessmemory_test3 coreclrpal)
-
-target_link_libraries(paltest_writeprocessmemory_test3
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- helper.cpp
-)
-
-add_executable(paltest_writeprocessmemory_test3_helper
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_writeprocessmemory_test3_helper coreclrpal)
-
-target_link_libraries(paltest_writeprocessmemory_test3_helper
- ${COMMON_TEST_LIBRARIES}
-)
return TRUE;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_WriteProcessMemory_test3_paltest_writeprocessmemory_test3_helper, "debug_api/WriteProcessMemory/test3/paltest_writeprocessmemory_test3_helper")
{
BOOL success = TRUE; /* assume success */
struct allhandles_t Comms = {0,0,0} ;
Fail("");
}
- PAL_Terminate();
+ PAL_TerminateEx(success ? PASS : FAIL);
return success ? PASS : FAIL;
}
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_WriteProcessMemory_test3_paltest_writeprocessmemory_test3, "debug_api/WriteProcessMemory/test3/paltest_writeprocessmemory_test3")
{
PROCESS_INFORMATION pi;
PEDANTIC(CloseHandle, (pi.hThread));
PEDANTIC(CloseHandle, (pi.hProcess));
- PAL_Terminate(dwExitCode);
+ PAL_TerminateEx(dwExitCode);
return dwExitCode;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Debug
-Function = WriteProcessMemory
-Name = Check that you can't write from writable to protected memory.
-TYPE = DEFAULT
-EXE1 = test3
-EXE2 = helper
-Description
-= Create a child process and debug it. When the child
-= raises an exception, it sends back a memory location. Call
-= WriteProcessMemory on the memory location, but attempt to write
-= more than the memory allows. This should cause an error and the
-= data should be unchanged.
+++ /dev/null
-set(TESTSOURCES
- test4.cpp
-)
-
-add_executable(paltest_writeprocessmemory_test4
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_writeprocessmemory_test4 coreclrpal)
-
-target_link_libraries(paltest_writeprocessmemory_test4
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- helper.cpp
-)
-
-add_executable(paltest_writeprocessmemory_test4_helper
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_writeprocessmemory_test4_helper coreclrpal)
-
-target_link_libraries(paltest_writeprocessmemory_test4_helper
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
const int MY_EXCEPTION=999;
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_WriteProcessMemory_test4_paltest_writeprocessmemory_test4_helper, "debug_api/WriteProcessMemory/test4/paltest_writeprocessmemory_test4_helper")
{
char* Memory;
#include <palsuite.h>
const int MY_EXCEPTION=999;
-int __cdecl main(int argc, char *argv[])
+PALTEST(debug_api_WriteProcessMemory_test4_paltest_writeprocessmemory_test4, "debug_api/WriteProcessMemory/test4/paltest_writeprocessmemory_test4")
{
PROCESS_INFORMATION pi;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Debug
-Function = WriteProcessMemory
-Name = Check that you can't write to protected memory.
-TYPE = DEFAULT
-EXE1 = test4
-EXE2 = helper
-Description
-= Create a child process and debug it. When the child
-= raises an exception, it sends back a memory location. Call
-= WriteProcessMemory on a restricted memory location and ensure that
-= it fails.
-
set(SOURCES
+ EnableEventLogging.cpp
${CMAKE_CURRENT_BINARY_DIR}/clralltestevents.cpp
)
include_directories(${COREPAL_SOURCE_DIR}/inc/rt)
endif(TARGET_UNIX)
-add_executable(eventprovidertest
+_add_executable(eventprovidertest
${SOURCES}
)
set(EVENT_PROVIDER_DEPENDENCIES "")
target_link_libraries(eventprovidertest ${EVENT_PROVIDER_DEPENDENCIES} coreclrpal)
add_dependencies(eventprovidertest eventing_headers)
+
+_install (TARGETS eventprovidertest DESTINATION paltests/eventprovider)
\ No newline at end of file
--- /dev/null
+
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+/*=====================================================================
+**
+** Source: EnableEnventLogging.cpp
+**
+** Purpose: Fix linker issue on platforms where the PAL is built against
+** verion 2.4 of liblttng-ust-dev
+**
+**
+**===================================================================*/
+
+#if defined(HOST_UNIX)
+// This is a wrapper method for LTTng. See https://github.com/dotnet/coreclr/pull/27273 for details.
+extern "C" bool XplatEventLoggerIsEnabled()
+{
+ // As we are testing the lttng events here, enable them unconditionally.
+ return true;
+}
+#endif // HOST_UNIX
+++ /dev/null
-add_subdirectory(pal_sxs)
-#add_subdirectory(pal_except)
-#add_subdirectory(PAL_EXCEPT_FILTER)
-#add_subdirectory(PAL_EXCEPT_FILTER_EX)
-#add_subdirectory(pal_finally)
-#add_subdirectory(PAL_TRY_EXCEPT)
-#add_subdirectory(PAL_TRY_EXCEPT_EX)
-#add_subdirectory(PAL_TRY_LEAVE_FINALLY)
-add_subdirectory(RaiseException)
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- PAL_EXCEPT_FILTER.cpp
-)
-
-add_executable(paltest_pal_except_filter_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_filter_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_except_filter_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_EXCEPT_FILTER_test1_paltest_pal_except_filter_test1, "exception_handling/PAL_EXCEPT_FILTER/test1/paltest_pal_except_filter_test1")
{
int* p = 0x00000000; /* pointer to NULL */
BOOL bExcept = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_EXCEPT_FILTER
-Name = Test for PAL_EXCEPT_FILTER
-Type = DEFAULT
-EXE1 = pal_except_filter
-LANG = cpp
-Description
-= Tests the PAL implementation of the PAL_EXCEPT_FILTER. An
-= exception is forced and a known value is passed to the filter
-= fuction. The known value as well as booleans are tested to
-= ensure proper functioning.
+++ /dev/null
-set(SOURCES
- pal_except_filter.cpp
-)
-
-add_executable(paltest_pal_except_filter_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_filter_test2 coreclrpal)
-
-target_link_libraries(paltest_pal_except_filter_test2
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_EXCEPT_FILTER_test2_paltest_pal_except_filter_test2, "exception_handling/PAL_EXCEPT_FILTER/test2/paltest_pal_except_filter_test2")
{
BOOL bExcept = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_EXCEPT_FILTER
-Name = Test for PAL_EXCEPT_FILTER
-Type = DEFAULT
-EXE1 = pal_except_filter
-LANG = cpp
-Description
-= Tests the PAL implementation of the PAL_EXCEPT_FILTER. An
-= exception is forced and the filter returns
-= EXCEPTION_CONTINUE_EXECUTION to allow execution to continue.
+++ /dev/null
-set(SOURCES
- pal_except_filter.cpp
-)
-
-add_executable(paltest_pal_except_filter_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_filter_test3 coreclrpal)
-
-target_link_libraries(paltest_pal_except_filter_test3
- ${COMMON_TEST_LIBRARIES}
-)
NestedFunc1();
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_EXCEPT_FILTER_test3_paltest_pal_except_filter_test3, "exception_handling/PAL_EXCEPT_FILTER/test3/paltest_pal_except_filter_test3")
{
if (0 != PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_EXCEPT_FILTER_EX
-Name = Test for nested PAL_EXCEPT_FILTER functions & EXCEPTION_CONTINUE_SEARCH
-Type = DEFAULT
-EXE1 = pal_except_filter
-LANG = cpp
-Description
-= Tests the PAL implementation of the PAL_EXCEPT_FILTER with nested
-= functions to build a call stack. An
-= exception is forced and passed to two nested exception filters for
-= consideration. The first filter returns EXCEPTION_CONTINUE_SEARCH
-= so the second can run and return EXCEPTION_EXECUTE_HANDLER. The
-= initial exception handler should be skipped, and the second
-= executed
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- PAL_EXCEPT_FILTER_EX.cpp
-)
-
-add_executable(paltest_pal_except_filter_ex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_filter_ex_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_except_filter_ex_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_EXCEPT_FILTER_EX_test1_paltest_pal_except_filter_ex_test1, "exception_handling/PAL_EXCEPT_FILTER_EX/test1/paltest_pal_except_filter_ex_test1")
{
int* p = 0x00000000;
BOOL bExcept = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_EXCEPT_FILTER_EX
-Name = Test for PAL_EXCEPT_FILTER_EX
-Type = DEFAULT
-EXE1 = pal_except_filter_ex
-LANG = cpp
-Description
-= Tests the PAL implementation of the PAL_EXCEPT_FILTER_EX.
-= There are two try blocks in this test. The first forces an
-= exception error to force hitting the first filter. The second
-= doesn't to make sure we don't hit the filter. A value is also
-= passed into the filter program and it is validated to make sure
-= it was passed correctly.
+++ /dev/null
-set(SOURCES
- pal_except_filter_ex.cpp
-)
-
-add_executable(paltest_pal_except_filter_ex_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_filter_ex_test2 coreclrpal)
-
-target_link_libraries(paltest_pal_except_filter_ex_test2
- ${COMMON_TEST_LIBRARIES}
-)
return EXCEPTION_EXECUTE_HANDLER;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_EXCEPT_FILTER_EX_test2_paltest_pal_except_filter_ex_test2, "exception_handling/PAL_EXCEPT_FILTER_EX/test2/paltest_pal_except_filter_ex_test2")
{
int* p = 0x00000000;
BOOL bExcept = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_EXCEPT_FILTER_EX
-Name = Test for PAL_EXCEPT_FILTER_EX
-Type = DEFAULT
-EXE1 = pal_except_filter_ex
-LANG = cpp
-Description
-= Tests the PAL implementation of the PAL_EXCEPT_FILTER_EX.
-= There is a nested try blocks in this test. The nested
-= PAL_TRY creates an exception and the FILTER creates another.
-= This test makes sure that this case does not end in a
-= infinite loop.
+++ /dev/null
-set(SOURCES
- pal_except_filter.cpp
-)
-
-add_executable(paltest_pal_except_filter_ex_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_filter_ex_test3 coreclrpal)
-
-target_link_libraries(paltest_pal_except_filter_ex_test3
- ${COMMON_TEST_LIBRARIES}
-)
return EXCEPTION_EXECUTE_HANDLER;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_EXCEPT_FILTER_EX_test3_paltest_pal_except_filter_ex_test3, "exception_handling/PAL_EXCEPT_FILTER_EX/test3/paltest_pal_except_filter_ex_test3")
{
int* p = 0x00000000; /* pointer to NULL */
BOOL bExcept1 = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_EXCEPT_FILTER_EX
-Name = Test for nested PAL_EXCEPT_FILTER_EX & EXCEPTION_CONTINUE_SEARCH
-Type = DEFAULT
-EXE1 = pal_except_filter
-LANG = cpp
-Description
-= Tests the PAL implementation of the PAL_EXCEPT_FILTER_EX. An
-= exception is forced and passed to two nested exception filters for
-= consideration. The first filter returns EXCEPTION_CONTINUE_SEARCH
-= so the second can run and return EXCEPTION_EXECUTE_HANDLER. The
-= initial exception handler should be skipped, and the second
-= executed
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- PAL_TRY_EXCEPT.cpp
-)
-
-add_executable(paltest_pal_try_except_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_try_except_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_try_except_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_TRY_EXCEPT_test1_paltest_pal_try_except_test1, "exception_handling/PAL_TRY_EXCEPT/test1/paltest_pal_try_except_test1")
{
int* p = 0x00000000; /* NULL pointer */
BOOL bTry = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_TRY and PAL_EXCEPT
-Name = Test for PAL_TRY and PAL_EXCEPT
-Type = DEFAULT
-EXE1 = pal_try_except
-LANG = cpp
-Description
-= Since these two are so closely connected, they are tested together.
-= In the PAL_TRY block, an access violation is forced to gain
-= access to the PAL_EXCEPT block. Booleans are used to ensure
-= each of the code blocks are hit.
+++ /dev/null
-set(SOURCES
- PAL_TRY_EXCEPT.cpp
-)
-
-add_executable(paltest_pal_try_except_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_try_except_test2 coreclrpal)
-
-target_link_libraries(paltest_pal_try_except_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_TRY_EXCEPT_test2_paltest_pal_try_except_test2, "exception_handling/PAL_TRY_EXCEPT/test2/paltest_pal_try_except_test2")
{
BOOL bTry = FALSE;
BOOL bExcept = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_TRY and PAL_EXCEPT (test 2)
-Name = Test for PAL_TRY and PAL_EXCEPT
-Type = DEFAULT
-EXE1 = pal_try_except
-LANG = cpp
-Description
-= Since these two are so closely connected, they are tested together.
-= In this test, no exceptions are forced to ensure the EXCEPTION block
-= isn't hit. Booleans are used to ensure the proper code blocks are hit.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- PAL_TRY_EXCEPT_EX.cpp
-)
-
-add_executable(paltest_pal_try_except_ex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_try_except_ex_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_try_except_ex_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_TRY_EXCEPT_EX_test1_paltest_pal_try_except_ex_test1, "exception_handling/PAL_TRY_EXCEPT_EX/test1/paltest_pal_try_except_ex_test1")
{
int* p = 0x00000000; /* NULL pointer */
BOOL bTry = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_TRY and PAL_EXCEPT_EX
-Name = Test for PAL_TRY and PAL_EXCEPT_EX
-Type = DEFAULT
-EXE1 = pal_try_except_ex
-LANG = cpp
-Description
-= Since these two are so closely connected, they are tested together.
-= In the PAL_TRY block, an access violation is forced to gain
-= access to the PAL_EXCEPT block. Booleans are used to ensure
-= each of the code blocks are hit.
+++ /dev/null
-set(SOURCES
- PAL_TRY_EXCEPT_EX.cpp
-)
-
-add_executable(paltest_pal_try_except_ex_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_try_except_ex_test2 coreclrpal)
-
-target_link_libraries(paltest_pal_try_except_ex_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_TRY_EXCEPT_EX_test2_paltest_pal_try_except_ex_test2, "exception_handling/PAL_TRY_EXCEPT_EX/test2/paltest_pal_try_except_ex_test2")
{
BOOL bTry = FALSE;
BOOL bExcept = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_TRY and PAL_EXCEPT_EX (test 2)
-Name = Test for PAL_TRY and PAL_EXCEPT_EX
-Type = DEFAULT
-EXE1 = pal_try_except_ex
-LANG = cpp
-Description
-= Since these two are so closely connected, they are tested together.
-= In this test, no exceptions are forced to ensure the EXCEPTION block
-= isn't hit. Booleans are used to ensure the proper code blocks are hit.
+++ /dev/null
-set(SOURCES
- PAL_TRY_EXCEPT_EX.cpp
-)
-
-add_executable(paltest_pal_try_except_ex_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_try_except_ex_test3 coreclrpal)
-
-target_link_libraries(paltest_pal_try_except_ex_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_TRY_EXCEPT_EX_test3_paltest_pal_try_except_ex_test3, "exception_handling/PAL_TRY_EXCEPT_EX/test3/paltest_pal_try_except_ex_test3")
{
int* p = 0x00000000; /* NULL pointer */
BOOL bTry = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_TRY and PAL_EXCEPT_EX (test3)
-Name = Test for PAL_TRY and PAL_EXCEPT_EX
-Type = DEFAULT
-EXE1 = pal_try_except_ex
-LANG = cpp
-Description
-= Since these two are so closely connected, they are tested together.
-= Only one of the PAL_TRY blocks will force and exception to ensure the
-= correct PAL_EXCEPT_EX block is hit. Booleans are used to ensure
-= the correct code blocks are hit.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- PAL_TRY_LEAVE_FINALLY.cpp
-)
-
-add_executable(paltest_pal_try_leave_finally_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_try_leave_finally_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_try_leave_finally_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_PAL_TRY_LEAVE_FINALLY_test1_paltest_pal_try_leave_finally_test1, "exception_handling/PAL_TRY_LEAVE_FINALLY/test1/paltest_pal_try_leave_finally_test1")
{
BOOL bTry = FALSE;
BOOL bFinally = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = PAL_TRY, PAL_LEAVE and PAL_FINALLY
-Name = Test for PAL_TRY, PAL_LEAVE and PAL_EXCEPT
-Type = DEFAULT
-EXE1 = pal_try_leave_finally
-LANG = cpp
-Description
-= Since these three are so closely connected, they are tested together.
-= The PAL_TRY block contains a PAL_LEAVE which kicks execution to
-= the PAL_FINALLY block. Booleans are used to ensure each of the
-= code blocks are properly hit.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_raiseexception_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_raiseexception_test1 coreclrpal)
-
-target_link_libraries(paltest_raiseexception_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-BOOL bExcept = FALSE;
-BOOL bTry = FALSE;
-BOOL bFinally = FALSE;
+BOOL bExcept_RaiseException_test1 = FALSE;
+BOOL bTry_RaiseException_test1 = FALSE;
+BOOL bFinally_RaiseException_test1 = FALSE;
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_RaiseException_test1_paltest_raiseexception_test1, "exception_handling/RaiseException/test1/paltest_raiseexception_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
*/
PAL_TRY(VOID*, unused, NULL)
{
- bTry = TRUE;
+ bTry_RaiseException_test1 = TRUE;
RaiseException(0,0,0,0);
Fail("RaiseException: ERROR -> code was executed after the "
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- bExcept = TRUE;
+ bExcept_RaiseException_test1 = TRUE;
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_RaiseException_test1)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_RaiseException_test1)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_EXCEPT_FILTER_EX block was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept)
+ if(!bTry_RaiseException_test1 || !bExcept_RaiseException_test1)
{
Fail("");
}
/* Reinit flags */
- bTry = bExcept = FALSE;
+ bTry_RaiseException_test1 = bExcept_RaiseException_test1 = FALSE;
/*********************************************************
* Tests the behaviour of RaiseException with
* PAL_FINALLY
- * (bFinally should be set before bExcept)
+ * (bFinally_RaiseException_test1 should be set before bExcept_RaiseException_test1)
*/
PAL_TRY(VOID*, unused, NULL)
{
PAL_TRY(VOID*, unused, NULL)
{
- bTry = TRUE;
+ bTry_RaiseException_test1 = TRUE;
RaiseException(0,0,0,0);
Fail("RaiseException: ERROR -> code was executed after the "
}
PAL_FINALLY
{
- bFinally = TRUE;
+ bFinally_RaiseException_test1 = TRUE;
}
PAL_ENDTRY;
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if( bFinally == FALSE )
+ if( bFinally_RaiseException_test1 == FALSE )
{
Fail("RaiseException: ERROR -> It appears the code in the "
"PAL_EXCEPT executed before the code in PAL_FINALLY.\n");
}
- bExcept = TRUE;
+ bExcept_RaiseException_test1 = TRUE;
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_RaiseException_test1)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_RaiseException_test1)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_EXCEPT block was not executed.\n");
}
- if (!bFinally)
+ if (!bFinally_RaiseException_test1)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_FINALLY block was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept || !bFinally)
+ if(!bTry_RaiseException_test1 || !bExcept_RaiseException_test1 || !bFinally_RaiseException_test1)
{
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = RaiseException
-Name = RaiseException test #1
-TYPE = DEFAULT
-EXE1 = test1
-LANG = cpp
-Description
-=Tests that RaiseException throws a catchable exception
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_raiseexception_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_raiseexception_test2 coreclrpal)
-
-target_link_libraries(paltest_raiseexception_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-BOOL bFilter;
-BOOL bTry;
-BOOL bExcept;
+BOOL bFilter_RaiseException_test2;
+BOOL bTry_RaiseException_test2;
+BOOL bExcept_RaiseException_test2;
-ULONG_PTR lpArguments_test1[EXCEPTION_MAXIMUM_PARAMETERS];
-DWORD nArguments_test1 = EXCEPTION_MAXIMUM_PARAMETERS;
+ULONG_PTR lpArguments_test1_RaiseException_test2[EXCEPTION_MAXIMUM_PARAMETERS];
+DWORD nArguments_test1_RaiseException_test2 = EXCEPTION_MAXIMUM_PARAMETERS;
-ULONG_PTR lpArguments_test2[EXCEPTION_MAXIMUM_PARAMETERS+1];
-DWORD nArguments_test2 = EXCEPTION_MAXIMUM_PARAMETERS+1;
+ULONG_PTR lpArguments_test2_RaiseException_test2[EXCEPTION_MAXIMUM_PARAMETERS+1];
+DWORD nArguments_test2_RaiseException_test2 = EXCEPTION_MAXIMUM_PARAMETERS+1;
/**
** Filter function that checks for the parameters
**
**/
-LONG Filter_test1(EXCEPTION_POINTERS* ep, VOID *unused)
+LONG Filter_test1_RaiseException_test2(EXCEPTION_POINTERS* ep, VOID *unused)
{
int i;
/* let the main know we've hit the filter function */
- bFilter = TRUE;
+ bFilter_RaiseException_test2 = TRUE;
- if (!bTry)
+ if (!bTry_RaiseException_test2)
{
Fail("PAL_EXCEPT_FILTER_EX: ERROR -> Something weird is going on."
" The filter was hit without PAL_TRY being hit.\n");
/* was the correct number of arguments passed */
- if (ep->ExceptionRecord->NumberParameters != (DWORD) nArguments_test1)
+ if (ep->ExceptionRecord->NumberParameters != (DWORD) nArguments_test1_RaiseException_test2)
{
Fail("RaiseException: ERROR -> Number of arguments passed to filter"
" was %d when it should have been %d",
ep->ExceptionRecord->NumberParameters,
- nArguments_test1);
+ nArguments_test1_RaiseException_test2);
}
/* were the correct arguments passed */
- for( i=0; ((DWORD)i)<nArguments_test1; i++ )
+ for( i=0; ((DWORD)i)<nArguments_test1_RaiseException_test2; i++ )
{
if( ep->ExceptionRecord->ExceptionInformation[i]
- != lpArguments_test1[i])
+ != lpArguments_test1_RaiseException_test2[i])
{
Fail("RaiseException: ERROR -> Argument %d passed to filter"
" was %d when it should have been %d",
i,
ep->ExceptionRecord->ExceptionInformation[i],
- lpArguments_test1[i]);
+ lpArguments_test1_RaiseException_test2[i]);
}
}
** Filter function that checks for the maximum parameters
**
**/
-LONG Filter_test2(EXCEPTION_POINTERS* ep, VOID* unused)
+LONG Filter_test2_RaiseException_test2(EXCEPTION_POINTERS* ep, VOID* unused)
{
/* let the main know we've hit the filter function */
- bFilter = TRUE;
+ bFilter_RaiseException_test2 = TRUE;
if (ep->ExceptionRecord->NumberParameters > EXCEPTION_MAXIMUM_PARAMETERS)
{
return EXCEPTION_EXECUTE_HANDLER;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_RaiseException_test2_paltest_raiseexception_test2, "exception_handling/RaiseException/test2/paltest_raiseexception_test2")
{
- bExcept = FALSE;
+ bExcept_RaiseException_test2 = FALSE;
if (0 != PAL_Initialize(argc, argv))
{
*/
PAL_TRY(VOID*, unused, NULL)
{
- bTry = TRUE; /* indicate we hit the PAL_TRY block */
+ bTry_RaiseException_test2 = TRUE; /* indicate we hit the PAL_TRY block */
/* Initialize arguments to pass to filter */
- for(int i = 0; ((DWORD)i) < nArguments_test1; i++ )
+ for(int i = 0; ((DWORD)i) < nArguments_test1_RaiseException_test2; i++ )
{
- lpArguments_test1[i] = i;
+ lpArguments_test1_RaiseException_test2[i] = i;
}
- RaiseException(0,0,nArguments_test1,lpArguments_test1);
+ RaiseException(0,0,nArguments_test1_RaiseException_test2,lpArguments_test1_RaiseException_test2);
Fail("RaiseException: ERROR -> code was executed after the "
"exception was raised.\n");
}
- PAL_EXCEPT_FILTER(Filter_test1)
+ PAL_EXCEPT_FILTER(Filter_test1_RaiseException_test2)
{
- if (!bTry)
+ if (!bTry_RaiseException_test2)
{
Fail("RaiseException: ERROR -> Something weird is going on."
" PAL_EXCEPT_FILTER was hit without PAL_TRY being hit.\n");
}
- bExcept = TRUE; /* indicate we hit the PAL_EXCEPT_FILTER_EX block */
+ bExcept_RaiseException_test2 = TRUE; /* indicate we hit the PAL_EXCEPT_FILTER_EX block */
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_RaiseException_test2)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_RaiseException_test2)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_EXCEPT_FILTER_EX block was not executed.\n");
}
- if (!bFilter)
+ if (!bFilter_RaiseException_test2)
{
Trace("RaiseException: ERROR -> It appears the code in the"
" filter function was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept || !bFilter)
+ if(!bTry_RaiseException_test2 || !bExcept_RaiseException_test2 || !bFilter_RaiseException_test2)
{
Fail("");
}
/* Reinit flags */
- bTry = bExcept = bFilter = FALSE;
+ bTry_RaiseException_test2 = bExcept_RaiseException_test2 = bFilter_RaiseException_test2 = FALSE;
/********************************************************
* Test that the number of arguments never
*/
PAL_TRY(VOID*, unused, NULL)
{
- bTry = TRUE; /* indicate we hit the PAL_TRY block */
+ bTry_RaiseException_test2 = TRUE; /* indicate we hit the PAL_TRY block */
/* Initialize arguments to pass to filter */
- for(int i = 0; ((DWORD)i) < nArguments_test2; i++ )
+ for(int i = 0; ((DWORD)i) < nArguments_test2_RaiseException_test2; i++ )
{
- lpArguments_test2[i] = i;
+ lpArguments_test2_RaiseException_test2[i] = i;
}
- RaiseException(0,0,nArguments_test2,lpArguments_test2);
+ RaiseException(0,0,nArguments_test2_RaiseException_test2,lpArguments_test2_RaiseException_test2);
Fail("RaiseException: ERROR -> code was executed after the "
"exception was raised.\n");
}
- PAL_EXCEPT_FILTER(Filter_test2)
+ PAL_EXCEPT_FILTER(Filter_test2_RaiseException_test2)
{
- if (!bTry)
+ if (!bTry_RaiseException_test2)
{
Fail("RaiseException: ERROR -> Something weird is going on."
" PAL_EXCEPT_FILTER was hit without PAL_TRY being hit.\n");
}
- bExcept = TRUE; /* indicate we hit the PAL_EXCEPT_FILTER_EX block */
+ bExcept_RaiseException_test2 = TRUE; /* indicate we hit the PAL_EXCEPT_FILTER_EX block */
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_RaiseException_test2)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_RaiseException_test2)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_EXCEPT_FILTER_EX block was not executed.\n");
}
- if (!bFilter)
+ if (!bFilter_RaiseException_test2)
{
Trace("RaiseException: ERROR -> It appears the code in the"
" filter function was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept || !bFilter)
+ if(!bTry_RaiseException_test2 || !bExcept_RaiseException_test2 || !bFilter_RaiseException_test2)
{
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = RaiseException
-
-Name = RaiseException test #2
-
-TYPE = DEFAULT
-
-EXE1 = test2
-LANG = cpp
-
-Description
-
-=Tests that the correct arguments are passed
-
-=to the filter by RaiseException and tests that
-
-=the number of arguments never exceeds
-
-=EXCEPTION_MAXIMUM_PARAMETERS, even though we
-
-=pass a greater number of arguments
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_raiseexception_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_raiseexception_test3 coreclrpal)
-
-target_link_libraries(paltest_raiseexception_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-BOOL bFilter = FALSE;
-BOOL bTry = FALSE;
-BOOL bExcept = FALSE;
+BOOL bFilter_RaiseException_test3 = FALSE;
+BOOL bTry_RaiseException_test3 = FALSE;
+BOOL bExcept_RaiseException_test3 = FALSE;
/**
**
** Filter function that checks for the parameters
**
**/
-LONG Filter_test1(EXCEPTION_POINTERS* ep, VOID* unused)
+LONG Filter_test1_RaiseException_test3(EXCEPTION_POINTERS* ep, VOID* unused)
{
/* let the main know we've hit the filter function */
- bFilter = TRUE;
+ bFilter_RaiseException_test3 = TRUE;
- if (!bTry)
+ if (!bTry_RaiseException_test3)
{
Fail("PAL_EXCEPT_FILTER_EX: ERROR -> Something weird is going on."
" The filter was hit without PAL_TRY being hit.\n");
return EXCEPTION_EXECUTE_HANDLER;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_RaiseException_test3_paltest_raiseexception_test3, "exception_handling/RaiseException/test3/paltest_raiseexception_test3")
{
- bExcept = FALSE;
+ bExcept_RaiseException_test3 = FALSE;
if (0 != PAL_Initialize(argc, argv))
{
*/
PAL_TRY(VOID*, unused, NULL)
{
- bTry = TRUE; /* indicate we hit the PAL_TRY block */
+ bTry_RaiseException_test3 = TRUE; /* indicate we hit the PAL_TRY block */
RaiseException(EXCEPTION_ARRAY_BOUNDS_EXCEEDED,
0,
Fail("RaiseException: ERROR -> code was executed after the "
"exception was raised.\n");
}
- PAL_EXCEPT_FILTER(Filter_test1)
+ PAL_EXCEPT_FILTER(Filter_test1_RaiseException_test3)
{
- if (!bTry)
+ if (!bTry_RaiseException_test3)
{
Fail("RaiseException: ERROR -> Something weird is going on."
" PAL_EXCEPT_FILTER was hit without PAL_TRY being hit.\n");
}
- bExcept = TRUE; /* indicate we hit the PAL_EXCEPT_FILTER_EX block */
+ bExcept_RaiseException_test3 = TRUE; /* indicate we hit the PAL_EXCEPT_FILTER_EX block */
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_RaiseException_test3)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_RaiseException_test3)
{
Trace("RaiseException: ERROR -> It appears the code in the "
"PAL_EXCEPT_FILTER_EX block was not executed.\n");
}
- if (!bFilter)
+ if (!bFilter_RaiseException_test3)
{
Trace("RaiseException: ERROR -> It appears the code in the"
" filter function was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept || !bFilter)
+ if(!bTry_RaiseException_test3 || !bExcept_RaiseException_test3 || !bFilter_RaiseException_test3)
{
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = RaiseException
-Name = RaiseException test #3
-TYPE = DEFAULT
-EXE1 = test
-LANG = cpp
-Description
-= Tests that the exception code passed to
-= RaiseException makes it to the filter.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_pal_except_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_except_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
/* Execution flags */
-BOOL bTry = FALSE;
-BOOL bExcept = FALSE;
+BOOL bTry_pal_except_test1 = FALSE;
+BOOL bExcept_pal_except_test1 = FALSE;
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_except_test1_paltest_pal_except_test1, "exception_handling/pal_except/test1/paltest_pal_except_test1")
{
if (0 != PAL_Initialize(argc, argv))
{
{
int* p = 0x00000000; /* NULL pointer */
- bTry = TRUE; /* indicate we hit the PAL_TRY block */
+ bTry_pal_except_test1 = TRUE; /* indicate we hit the PAL_TRY block */
*p = 13; /* causes an access violation exception */
Fail("ERROR: code was executed after the access violation.\n");
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if (!bTry)
+ if (!bTry_pal_except_test1)
{
Fail("ERROR: PAL_EXCEPT was hit without PAL_TRY being hit.\n");
}
- bExcept = TRUE; /* indicate we hit the PAL_EXCEPT block */
+ bExcept_pal_except_test1 = TRUE; /* indicate we hit the PAL_EXCEPT block */
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_pal_except_test1)
{
Trace("ERROR: the code in the PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_pal_except_test1)
{
Trace("ERROR: the code in the PAL_EXCEPT block was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept)
+ if(!bTry_pal_except_test1 || !bExcept_pal_except_test1)
{
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = PAL_TRY and PAL_EXCEPT
-
-Name = Test for PAL_TRY and PAL_EXCEPT
-
-Type = DEFAULT
-
-EXE1 = test1
-
-LANG = cpp
-
-Description
-
-= Test to make sure the PAL_EXCEPT block is executed
-
-= after an exception occurs in the PAL_TRY block
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_pal_except_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_test2 coreclrpal)
-
-target_link_libraries(paltest_pal_except_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
/* Execution flags */
-BOOL bTry = FALSE;
-BOOL bExcept = FALSE;
-BOOL bTry_nested = FALSE;
-BOOL bExcept_nested = FALSE;
+BOOL bTry_pal_except_test2 = FALSE;
+BOOL bExcept_pal_except_test2 = FALSE;
+BOOL bTry_nested_pal_except_test2 = FALSE;
+BOOL bExcept_nested_pal_except_test2 = FALSE;
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_except_test2_paltest_pal_except_test2, "exception_handling/pal_except/test2/paltest_pal_except_test2")
{
if (0 != PAL_Initialize(argc, argv))
{
{
int* p = 0x00000000; /* NULL pointer */
- bTry = TRUE; /* indicate we hit the PAL_TRY block */
+ bTry_pal_except_test2 = TRUE; /* indicate we hit the PAL_TRY block */
/* Nested PAL_TRY */
PAL_TRY
{
- bTry_nested = TRUE;
+ bTry_nested_pal_except_test2 = TRUE;
*p = 13; /* causes an access violation exception */
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if (!bTry)
+ if (!bTry_pal_except_test2)
{
Fail("ERROR: Nested PAL_EXCEPT was hit without "
"nested PAL_TRY being hit.\n");
}
- bExcept_nested = TRUE;
+ bExcept_nested_pal_except_test2 = TRUE;
}
PAL_ENDTRY;
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if (!bTry)
+ if (!bTry_pal_except_test2)
{
Fail("ERROR: PAL_EXCEPT was hit without PAL_TRY being hit.\n");
}
- if (!bExcept_nested)
+ if (!bExcept_nested_pal_except_test2)
{
Fail("ERROR: PAL_EXCEPT was hit without "
"nested PAL_EXCEPT being hit.\n");
}
- bExcept = TRUE; /* indicate we hit the PAL_EXCEPT block */
+ bExcept_pal_except_test2 = TRUE; /* indicate we hit the PAL_EXCEPT block */
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_pal_except_test2)
{
Trace("ERROR: the code in the PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_pal_except_test2)
{
Trace("ERROR: the code in the PAL_EXCEPT block was not executed.\n");
}
- if (!bTry_nested)
+ if (!bTry_nested_pal_except_test2)
{
Trace("ERROR: the code in the "
"nested PAL_TRY block was not executed.\n");
}
- if (!bExcept_nested)
+ if (!bExcept_nested_pal_except_test2)
{
Trace("ERROR: the code in the "
"nested PAL_EXCEPT block was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept ||
- !bTry_nested || !bExcept_nested)
+ if(!bTry_pal_except_test2 || !bExcept_pal_except_test2 ||
+ !bTry_nested_pal_except_test2 || !bExcept_nested_pal_except_test2)
{
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = PAL_TRY and PAL_EXCEPT_EX
-
-Name = Test for PAL_TRY and PAL_EXCEPT_EX
-
-Type = DEFAULT
-
-EXE1 = test2
-
-LANG = cpp
-
-Description
-
-= Test to make sure the PAL_EXCEPT_EX block is executed
-
-= after an exception occurs in the PAL_TRY block
-
-= that contains another PAL_TRY-PAL_EXCEPT_EX block
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_pal_except_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_test3 coreclrpal)
-
-target_link_libraries(paltest_pal_except_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
/* Execution flags */
-BOOL bTry = FALSE;
-BOOL bExcept = FALSE;
-BOOL bTry_function = FALSE;
-BOOL bExcept_function = FALSE;
+BOOL bTry_pal_except_test3 = FALSE;
+BOOL bExcept_pal_except_test3 = FALSE;
+BOOL bTry_function_pal_except_test3 = FALSE;
+BOOL bExcept_function_pal_except_test3 = FALSE;
/*
* Helper function that contains a PAL_TRY-PAL_EXCEPT block
{
int *lp = 0x00000000;
- bTry_function = TRUE;
+ bTry_function_pal_except_test3 = TRUE;
*lp = 13; /* causes an access violation exception */
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if (!bTry)
+ if (!bTry_pal_except_test3)
{
Fail("ERROR: Nested PAL_EXCEPT was hit without "
"the function's PAL_TRY being hit.\n");
}
- bExcept_function = TRUE;
+ bExcept_function_pal_except_test3 = TRUE;
}
PAL_ENDTRY;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_except_test3_paltest_pal_except_test3, "exception_handling/pal_except/test3/paltest_pal_except_test3")
{
if (0 != PAL_Initialize(argc, argv))
{
{
int* p = 0x00000000; /* NULL pointer */
- bTry = TRUE; /* indicate we hit the PAL_TRY block */
+ bTry_pal_except_test3 = TRUE; /* indicate we hit the PAL_TRY block */
Helper();
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if (!bTry)
+ if (!bTry_pal_except_test3)
{
Fail("ERROR: PAL_EXCEPT was hit without PAL_TRY being hit.\n");
}
- if (!bExcept_function)
+ if (!bExcept_function_pal_except_test3)
{
Fail("ERROR: PAL_EXCEPT was hit without "
"function's PAL_EXCEPT being hit.\n");
}
- bExcept = TRUE; /* indicate we hit the PAL_EXCEPT block */
+ bExcept_pal_except_test3 = TRUE; /* indicate we hit the PAL_EXCEPT block */
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_pal_except_test3)
{
Trace("ERROR: the code in the PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_pal_except_test3)
{
Trace("ERROR: the code in the PAL_EXCEPT block was not executed.\n");
}
- if (!bTry_function)
+ if (!bTry_function_pal_except_test3)
{
Trace("ERROR: the code in the "
"function's PAL_TRY block was not executed.\n");
}
- if (!bExcept_function)
+ if (!bExcept_function_pal_except_test3)
{
Trace("ERROR: the code in the "
"function's PAL_EXCEPT block was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept ||
- !bTry_function || !bExcept_function)
+ if(!bTry_pal_except_test3 || !bExcept_pal_except_test3 ||
+ !bTry_function_pal_except_test3 || !bExcept_function_pal_except_test3)
{
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = PAL_TRY and PAL_EXCEPT
-
-Name = Test for PAL_TRY and PAL_EXCEPT
-
-Type = DEFAULT
-
-EXE1 = test3
-
-LANG = cpp
-
-Description
-
-= Test to make sure the PAL_EXCEPT block is executed
-
-= after an exception occurs in the PAL_TRY block
-
-= that calls a function that contains
-
-= another PAL_TRY-PAL_EXCEPT block
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_pal_except_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_test4 coreclrpal)
-
-target_link_libraries(paltest_pal_except_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
/* Execution flags */
-BOOL bTry = FALSE;
-BOOL bExcept = FALSE;
-BOOL bTry_nested = FALSE;
-BOOL bExcept_nested = FALSE;
+BOOL bTry_palexcept_test4 = FALSE;
+BOOL bExcept_palexcept_test4 = FALSE;
+BOOL bTry_nested_palexcept_test4 = FALSE;
+BOOL bExcept_nested_palexcept_test4 = FALSE;
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_except_test4_paltest_pal_except_test4, "exception_handling/pal_except/test4/paltest_pal_except_test4")
{
if (0 != PAL_Initialize(argc, argv))
{
{
int* p = 0x00000000; /* NULL pointer */
- bTry = TRUE; /* indicate we hit the PAL_TRY block */
+ bTry_palexcept_test4 = TRUE; /* indicate we hit the PAL_TRY block */
*p = 13; /* causes an access violation exception */
Fail("ERROR: code was executed after the access violation.\n");
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if (!bTry)
+ if (!bTry_palexcept_test4)
{
Fail("ERROR: PAL_EXCEPT was hit without PAL_TRY being hit.\n");
}
{
int *lp = 0x00000000;
- bTry_nested = TRUE;
+ bTry_nested_palexcept_test4 = TRUE;
*lp = 13; /* causes an access violation exception */
Fail("ERROR: code was executed after the "
}
PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
- if (!bTry_nested)
+ if (!bTry_nested_palexcept_test4)
{
Fail("ERROR: PAL_EXCEPT was hit without PAL_TRY being hit "
"in the nested block.\n");
}
- bExcept_nested = TRUE;
+ bExcept_nested_palexcept_test4 = TRUE;
}
PAL_ENDTRY;
- bExcept = TRUE; /* indicate we hit the PAL_EXCEPT block */
+ bExcept_palexcept_test4 = TRUE; /* indicate we hit the PAL_EXCEPT block */
}
PAL_ENDTRY;
- if (!bTry)
+ if (!bTry_palexcept_test4)
{
Trace("ERROR: the code in the PAL_TRY block was not executed.\n");
}
- if (!bExcept)
+ if (!bExcept_palexcept_test4)
{
Trace("ERROR: the code in the PAL_EXCEPT block was not executed.\n");
}
- if (!bTry_nested)
+ if (!bTry_nested_palexcept_test4)
{
Trace("ERROR: the code in the nested "
"PAL_TRY block was not executed.\n");
}
- if (!bExcept_nested)
+ if (!bExcept_nested_palexcept_test4)
{
Trace("ERROR: the code in the nested "
"PAL_EXCEPT block was not executed.\n");
}
/* did we hit all the code blocks? */
- if(!bTry || !bExcept ||
- !bTry_nested || !bExcept_nested)
+ if(!bTry_palexcept_test4 || !bExcept_palexcept_test4 ||
+ !bTry_nested_palexcept_test4 || !bExcept_nested_palexcept_test4)
{
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = PAL_TRY and PAL_EXCEPT
-
-Name = Test for PAL_TRY and PAL_EXCEPT
-
-Type = DEFAULT
-
-EXE1 = test4
-
-LANG = cpp
-
-Description
-
-= Test to make sure the PAL_EXCEPT block is executed
-
-= after an exception occurs in the PAL_TRY block
-
-= if the PAL_EXCEPT block contains a nested
-
-= PAL_TRY-PAL_EXCEPT block
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_pal_except_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_test5 coreclrpal)
-
-target_link_libraries(paltest_pal_except_test5
- ${COMMON_TEST_LIBRARIES}
-)
BOOL bTry_nested = FALSE;
BOOL bExcept_nested = FALSE;
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_except_test5_paltest_pal_except_test5, "exception_handling/pal_except/test5/paltest_pal_except_test5")
{
if (0 != PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = PAL_TRY and PAL_EXCEPT
-
-Name = Test for PAL_TRY and PAL_EXCEPT
-
-Type = DEFAULT
-
-EXE1 = test5
-
-LANG = cpp
-
-Description
-
-= Test to make sure the PAL_EXCEPT block is executed
-
-= after an exception occurs in the PAL_TRY block
-
-= if the PAL_EXCEPT block calls a function that contains
-
-= another PAL_TRY-PAL_EXCEPT block
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_pal_except_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_test6 coreclrpal)
-
-target_link_libraries(paltest_pal_except_test6
- ${COMMON_TEST_LIBRARIES}
-)
BOOL bExcept_nested2 = FALSE;
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_except_test6_paltest_pal_except_test6, "exception_handling/pal_except/test6/paltest_pal_except_test6")
{
if (0 != PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = PAL_TRY and PAL_EXCEPT_EX
-
-Name = Test for PAL_TRY and PAL_EXCEPT_EX
-
-Type = DEFAULT
-
-EXE1 = test6
-
-LANG = cpp
-
-Description
-
-= Test to make sure the PAL_EXCEPT_EX block is executed
-
-= after an exception occurs in the PAL_TRY block
-
-= that contains multiple PAL_TRY-PAL_EXCEPT_EX blocks
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_pal_except_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_except_test7 coreclrpal)
-
-target_link_libraries(paltest_pal_except_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_except_test7_paltest_pal_except_test7, "exception_handling/pal_except/test7/paltest_pal_except_test7")
{
BOOL bTry = FALSE;
BOOL bExcept = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = exception_handling
-
-Function = PAL_TRY and PAL_EXCEPT
-
-Name = Test for PAL_TRY and PAL_EXCEPT
-
-Type = DEFAULT
-
-EXE1 = test7
-
-LANG = cpp
-
-Description
-
-= In this test, no exceptions are forced to ensure the EXCEPTION block
-
-= isn't hit.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- pal_finally.cpp
-)
-
-add_executable(paltest_pal_finally_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_finally_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_finally_test1
- ${COMMON_TEST_LIBRARIES}
-)
PAL_ENDTRY ;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(exception_handling_pal_finally_test1_paltest_pal_finally_test1, "exception_handling/pal_finally/test1/paltest_pal_finally_test1")
{
if (0 != PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = exception_handling
-Function = PAL_FINALLY
-Name = Test for nested PAL_FINALLY
-Type = DEFAULT
-EXE1 = pal_finally
-LANG = cpp
-Description
-= Tests the PAL implementation of the PAL_FINALLY in the presence
-= of a call stack. An exception is forced and passed to two nested
-= exception filters for consideration. The first filter returns
-= EXCEPTION_CONTINUE_SEARCH so the second can run and return
-= EXCEPTION_EXECUTE_HANDLER. The initial exception handler should
-= be skipped, and the second executed, and all the PAL_FINALLY
-= blocks handled.
+++ /dev/null
-add_subdirectory(test1)
-
endif(CLR_CMAKE_HOST_UNIX)
set(DLL1SOURCES dlltest1.cpp)
-add_library(paltest_pal_sxs_test1_dll1 SHARED ${DLL1SOURCES})
+_add_library(paltest_pal_sxs_test1_dll1 SHARED ${DLL1SOURCES})
add_custom_target(dlltest1_exports DEPENDS ${EXPORTS_FILE1})
set_property(TARGET paltest_pal_sxs_test1_dll1 APPEND_STRING PROPERTY LINK_FLAGS ${EXPORTS_LINKER_OPTION1})
set_property(TARGET paltest_pal_sxs_test1_dll1 APPEND_STRING PROPERTY LINK_DEPENDS ${EXPORTS_FILE1})
endif(CLR_CMAKE_TARGET_OSX)
set(DLL2SOURCES dlltest2.cpp)
-add_library(paltest_pal_sxs_test1_dll2 SHARED ${DLL2SOURCES})
+_add_library(paltest_pal_sxs_test1_dll2 SHARED ${DLL2SOURCES})
add_custom_target(dlltest2_exports DEPENDS ${EXPORTS_FILE2})
set_property(TARGET paltest_pal_sxs_test1_dll2 APPEND_STRING PROPERTY LINK_FLAGS ${EXPORTS_LINKER_OPTION2})
set_property(TARGET paltest_pal_sxs_test1_dll2 APPEND_STRING PROPERTY LINK_DEPENDS ${EXPORTS_FILE2})
set(TESTSOURCES exceptionsxs.cpp)
-add_executable(paltest_pal_sxs_test1 ${TESTSOURCES})
+_add_executable(paltest_pal_sxs_test1 ${TESTSOURCES})
add_dependencies(paltest_pal_sxs_test1
paltest_pal_sxs_test1_dll1
paltest_pal_sxs_test1_dll1
paltest_pal_sxs_test1_dll2
)
+
+_install (TARGETS paltest_pal_sxs_test1 DESTINATION paltests/exception_handling/pal_sxs/test1)
+_install (TARGETS paltest_pal_sxs_test1_dll1 DESTINATION paltests/exception_handling/pal_sxs/test1)
+_install (TARGETS paltest_pal_sxs_test1_dll2 DESTINATION paltests/exception_handling/pal_sxs/test1)
\ No newline at end of file
+++ /dev/null
-add_subdirectory(CopyFileA)
-add_subdirectory(CopyFileW)
-add_subdirectory(CreateFileA)
-add_subdirectory(CreateFileW)
-add_subdirectory(DeleteFileA)
-add_subdirectory(DeleteFileW)
-add_subdirectory(errorpathnotfound)
-add_subdirectory(FILECanonicalizePath)
-add_subdirectory(FindClose)
-add_subdirectory(FindFirstFileA)
-add_subdirectory(FindFirstFileW)
-add_subdirectory(FindNextFileA)
-add_subdirectory(FindNextFileW)
-add_subdirectory(FlushFileBuffers)
-add_subdirectory(GetConsoleOutputCP)
-add_subdirectory(GetCurrentDirectoryA)
-add_subdirectory(GetCurrentDirectoryW)
-add_subdirectory(GetFileAttributesA)
-add_subdirectory(GetFileAttributesExW)
-add_subdirectory(GetFileAttributesW)
-add_subdirectory(GetFileSize)
-add_subdirectory(GetFileSizeEx)
-add_subdirectory(GetFullPathNameA)
-add_subdirectory(GetFullPathNameW)
-add_subdirectory(GetStdHandle)
-add_subdirectory(GetSystemTime)
-add_subdirectory(GetSystemTimeAsFileTime)
-add_subdirectory(GetTempFileNameA)
-add_subdirectory(GetTempFileNameW)
-add_subdirectory(gettemppatha)
-add_subdirectory(GetTempPathW)
-add_subdirectory(MoveFileExA)
-add_subdirectory(MoveFileExW)
-add_subdirectory(ReadFile)
-add_subdirectory(SearchPathW)
-add_subdirectory(SetEndOfFile)
-add_subdirectory(SetFilePointer)
-add_subdirectory(WriteFile)
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- CopyFileA.cpp
-)
-
-add_executable(paltest_copyfilea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_copyfilea_test1 coreclrpal)
-
-target_link_libraries(paltest_copyfilea_test1
- ${COMMON_TEST_LIBRARIES}
-)
};
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CopyFileA_test1_paltest_copyfilea_test1, "file_io/CopyFileA/test1/paltest_copyfilea_test1")
{
char szSrcExisting[] = {"src_existing.tmp"};
char szSrcNonExistant[] = {"src_non-existant.tmp"};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CopyFileA
-Name = Test for CopyFileA (test 1)
-Type = DEFAULT
-EXE1 = copyfilea
-Description
-= Test the CopyFileA function
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_copyfilea_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_copyfilea_test2 coreclrpal)
-
-target_link_libraries(paltest_copyfilea_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CopyFileA_test2_paltest_copyfilea_test2, "file_io/CopyFileA/test2/paltest_copyfilea_test2")
{
BOOL bRc = TRUE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CopyFileA
-Name = CopyFileA - checking copying to itself (test2)
-Type = DEFAULT
-EXE1 = test2
-Description
-= Test the CopyFileA function's behaviour
-= for copying a file to itself.
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_copyfilea_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_copyfilea_test3 coreclrpal)
-
-target_link_libraries(paltest_copyfilea_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CopyFileA_test3_paltest_copyfilea_test3, "file_io/CopyFileA/test3/paltest_copyfilea_test3")
{
BOOL bRc = TRUE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CopyFileA
-Name = CopyFileA - checking file attributes maintained (test2)
-Type = DEFAULT
-EXE1 = test3
-Description
-= Test the CopyFileA function's behaviour
-= for copying a file and verifying that
-= the copied file has the same file attributes
-= as the original.
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_copyfilea_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_copyfilea_test4 coreclrpal)
-
-target_link_libraries(paltest_copyfilea_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CopyFileA_test4_paltest_copyfilea_test4, "file_io/CopyFileA/test4/paltest_copyfilea_test4")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CopyFileA
-Name = CopyFileA - checking file attributes maintained (test4)
-Type = DEFAULT
-EXE1 = test4
-Description
-= Copy a file from a different user, belonging to a different group to
-= the the current user, who is a member of the current group. Then check
-= to see that the current user has the basic access rights to the copied
-= file.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- CopyFileW.cpp
-)
-
-add_executable(paltest_copyfilew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_copyfilew_test1 coreclrpal)
-
-target_link_libraries(paltest_copyfilew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CopyFileW_test1_paltest_copyfilew_test1, "file_io/CopyFileW/test1/paltest_copyfilew_test1")
{
LPSTR lpSource[2] = {"src_existing.tmp", "src_non-existant.tmp"};
LPSTR lpDestination[2] = {"dst_existing.tmp", "dst_non-existant.tmp"};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CopyFileW
-Name = Tests CopyFileW functionality.
-Type = DEFAULT
-EXE1 = copyfilew
-Description
-= Test the CopyFileW function
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_copyfilew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_copyfilew_test2 coreclrpal)
-
-target_link_libraries(paltest_copyfilew_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CopyFileW_test2_paltest_copyfilew_test2, "file_io/CopyFileW/test2/paltest_copyfilew_test2")
{
LPSTR szSrcExisting = "src_existing.tmp";
WCHAR* wcSource;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CopyFileW
-Name = Tests CopyFileW to check if file can be copied to itself. (test2)
-Type = DEFAULT
-EXE1 = test2
-Description
-= Test the CopyFileW function
-= to see the effect of copying a
-= file to itself.
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_copyfilew_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_copyfilew_test3 coreclrpal)
-
-target_link_libraries(paltest_copyfilew_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CopyFileW_test3_paltest_copyfilew_test3, "file_io/CopyFileW/test3/paltest_copyfilew_test3")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CopyFileW
-Name = CopyFileW - checking file attributes maintained (test3)
-Type = DEFAULT
-EXE1 = test3
-Description
-= Copy a file from a different user, belonging to a different group to
-= the the current user, who is a member of the current group. Then check
-= to see that the current user has the basic access rights to the copied
-= file.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- createdirectorya.cpp
-)
-
-add_executable(paltest_createdirectorya_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_createdirectorya_test2 coreclrpal)
-
-target_link_libraries(paltest_createdirectorya_test2
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- createdirectoryw.cpp
-)
-
-add_executable(paltest_createdirectoryw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_createdirectoryw_test2 coreclrpal)
-
-target_link_libraries(paltest_createdirectoryw_test2
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- CreateFileA.cpp
-)
-
-add_executable(paltest_createfilea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilea_test1 coreclrpal)
-
-target_link_libraries(paltest_createfilea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-BOOL Cleanup(void)
+BOOL Cleanup_CreateFileA_test1(void)
{
char FileName[20];
int i;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CreateFileA_test1_paltest_createfilea_test1, "file_io/CreateFileA/test1/paltest_createfilea_test1")
{
BOOL bSuccess = TRUE;
int nCounter = 0;
return FAIL;
}
- if (!Cleanup()) {
+ if (!Cleanup_CreateFileA_test1()) {
Trace("Pre-test Cleanup() failed. LastError=%d\n", GetLastError());
return FAIL;
}
}
}
- if (!Cleanup())
+ if (!Cleanup_CreateFileA_test1())
{
Trace("Post-test Cleanup() failed. LastError=%d\n", GetLastError());
return FAIL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CreateFileA
-Name = test for CreateFileA
-Type = DEFAULT
-EXE1 = createfilea
-Description
-= Attempts to create files based on all combinations of
-= options of CreateFileA
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- CreateFileW.cpp
-)
-
-add_executable(paltest_createfilew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilew_test1 coreclrpal)
-
-target_link_libraries(paltest_createfilew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-BOOL Cleanup(void)
+BOOL Cleanup_CreateFileW_test1(void)
{
char FileName[20];
int i;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_CreateFileW_test1_paltest_createfilew_test1, "file_io/CreateFileW/test1/paltest_createfilew_test1")
{
BOOL bSuccess = TRUE;
int nCounter = 0;
return FAIL;
}
- if (!Cleanup()) {
+ if (!Cleanup_CreateFileW_test1()) {
Trace("Pre-test Cleanup() failed. LastError=%d\n", GetLastError());
return FAIL;
}
}
}
- if (!Cleanup())
+ if (!Cleanup_CreateFileW_test1())
{
Trace("Post-test Cleanup() failed. LastError=%d\n", GetLastError());
return FAIL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = CreateFileW
-Name = test for CreateFileW
-Type = DEFAULT
-EXE1 = createfilew
-Description
-= Attempts to create files based on all combinations of
-= options of CreateFileW
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- DeleteFileA.cpp
-)
-
-add_executable(paltest_deletefilea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_deletefilea_test1 coreclrpal)
-
-target_link_libraries(paltest_deletefilea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <sys/stat.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_DeleteFileA_test1_paltest_deletefilea_test1, "file_io/DeleteFileA/test1/paltest_deletefilea_test1")
{
FILE *tempFile = NULL;
BOOL bRc = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = DeleteFileA
-Name = Test for DeleteFileA (test 1)
-Type = DEFAULT
-EXE1 = deletefilea
-Description
-= Attempt to delete various files.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- DeleteFileW.cpp
-)
-
-add_executable(paltest_deletefilew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_deletefilew_test1 coreclrpal)
-
-target_link_libraries(paltest_deletefilew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_DeleteFileW_test1_paltest_deletefilew_test1, "file_io/DeleteFileW/test1/paltest_deletefilew_test1")
{
FILE *tempFile = NULL;
BOOL bRc = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = DeleteFileW
-Name = Test for DeleteFileW (test 1)
-Type = DEFAULT
-EXE1 = deletefilew
-Description
-= Tests DeleteFileW on various file names
-
+++ /dev/null
-set(SOURCES
- FILECanonicalizePath.cpp
-)
-
-add_executable(paltest_filecanonicalizepath_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_filecanonicalizepath_test1 coreclrpal)
-
-target_link_libraries(paltest_filecanonicalizepath_test1
- ${COMMON_TEST_LIBRARIES}
-)
void TestCase(LPSTR input, LPSTR expectedOutput);
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FILECanonicalizePath_paltest_filecanonicalizepath_test1, "file_io/FILECanonicalizePath/paltest_filecanonicalizepath_test1")
{
if (PAL_Initialize(argc,argv) != 0)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FILECanonicalizePath
-Name = Test for FILECanonicalizePath (test 1)
-Type = DEFAULT
-EXE1 = filecanonicalizepath
-Description
-= Canonicalizes paths and verifies the results
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- FindClose.cpp
-)
-
-add_executable(paltest_findclose_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_findclose_test1 coreclrpal)
-
-target_link_libraries(paltest_findclose_test1
- ${COMMON_TEST_LIBRARIES}
-)
-const WCHAR szFindName[] = {'t','e', 's', 't', '0', '1', '.', 't', 'x', 't', '\0'};
-const WCHAR szFindName_02[] = {'t','e', 's', 't', '0', '2', '.', 't', 'x', 't', '\0'};
-const WCHAR szFindName_03[] = {'t','e', 's', 't', '0', '3', '.', 't', 'x', 't', '\0'};
-const WCHAR szFindNameWldCard_01[] = {'t','e', 's', 't', '0', '?', '.', 't', 'x', 't', '\0'};
-const WCHAR szFindNameWldCard_02[] = {'*', '.', 't', 'x', 't', '\0'};
-const WCHAR szDirName[] = {'t','e', 's', 't', '_', 'd', 'i', 'r', '\0'};
-const WCHAR szDirName_02[] = {'t','e', 's', 't', '_', 'd', 'i', 'r', '0', '2', '\0'};
-const WCHAR szDirNameWldCard[] = {'t','e', 's', 't', '_', '*', '\0'};
+const WCHAR szFindName_FindClose_test1[] = {'t','e', 's', 't', '0', '1', '.', 't', 'x', 't', '\0'};
+const WCHAR szFindName_02_FindClose_test1[] = {'t','e', 's', 't', '0', '2', '.', 't', 'x', 't', '\0'};
+const WCHAR szFindName_03_FindClose_test1[] = {'t','e', 's', 't', '0', '3', '.', 't', 'x', 't', '\0'};
+const WCHAR szFindNameWldCard_01_FindClose_test1[] = {'t','e', 's', 't', '0', '?', '.', 't', 'x', 't', '\0'};
+const WCHAR szFindNameWldCard_02_FindClose_test1[] = {'*', '.', 't', 'x', 't', '\0'};
+const WCHAR szDirName_FindClose_test1[] = {'t','e', 's', 't', '_', 'd', 'i', 'r', '\0'};
+const WCHAR szDirName_02_FindClose_test1[] = {'t','e', 's', 't', '_', 'd', 'i', 'r', '0', '2', '\0'};
+const WCHAR szDirNameWldCard_FindClose_test1[] = {'t','e', 's', 't', '_', '*', '\0'};
-BOOL createTestFile(const WCHAR* szName)
+BOOL createTestFile_FindClose_test1(const WCHAR* szName)
{
FILE *pFile = NULL;
char* pTemp = NULL;
void removeAll()
{
- RemoveDirectoryW(szDirName);
- RemoveDirectoryW(szDirName_02);
+ RemoveDirectoryW(szDirName_FindClose_test1);
+ RemoveDirectoryW(szDirName_02_FindClose_test1);
- DeleteFileW(szFindName);
- DeleteFileW(szFindName_02);
- DeleteFileW(szFindName_03);
+ DeleteFileW(szFindName_FindClose_test1);
+ DeleteFileW(szFindName_02_FindClose_test1);
+ DeleteFileW(szFindName_03_FindClose_test1);
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FindClose_test1_paltest_findclose_test1, "file_io/FindClose/test1/paltest_findclose_test1")
{
WIN32_FIND_DATAW findFileData;
WIN32_FIND_DATAW findFileData_02;
}
/* find a file that exists */
- if(createTestFile(szFindName) == FALSE)
+ if(createTestFile_FindClose_test1(szFindName_FindClose_test1) == FALSE)
{
removeAll();
PAL_TerminateEx(FAIL);
return FAIL;
}
- if(createTestFile(szFindName_02) == FALSE)
+ if(createTestFile_FindClose_test1(szFindName_02_FindClose_test1) == FALSE)
{
removeAll();
PAL_TerminateEx(FAIL);
return FAIL;
}
- if(createTestFile(szFindName_03) == FALSE)
+ if(createTestFile_FindClose_test1(szFindName_03_FindClose_test1) == FALSE)
{
removeAll();
PAL_TerminateEx(FAIL);
}
// close a FindFirstFileW handle
- hFind = FindFirstFileW(szFindName, &findFileData);
+ hFind = FindFirstFileW(szFindName_FindClose_test1, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- pTemp = convertC((WCHAR*)szFindName);
+ pTemp = convertC((WCHAR*)szFindName_FindClose_test1);
Trace("FindClose: ERROR -> Unable to find \"%s\"\n", pTemp);
free(pTemp);
removeAll();
" FindFirstFileW handle.\n");
}
}
- hFind = FindFirstFileW(szFindName, &findFileData);
+ hFind = FindFirstFileW(szFindName_FindClose_test1, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- pTemp = convertC((WCHAR*)szFindName);
+ pTemp = convertC((WCHAR*)szFindName_FindClose_test1);
Trace("FindClose: ERROR -> Unable to find \"%s\"\n", pTemp);
free(pTemp);
removeAll();
}
/* find a directory that exists */
- bRc = CreateDirectoryW(szDirName, NULL);
+ bRc = CreateDirectoryW(szDirName_FindClose_test1, NULL);
if (bRc == FALSE)
{
- pTemp = convertC((WCHAR*)szDirName);
+ pTemp = convertC((WCHAR*)szDirName_FindClose_test1);
Trace("FindClose: ERROR -> Failed to create the directory \"%s\"\n",
pTemp);
free(pTemp);
return FAIL;
}
- bRc = CreateDirectoryW(szDirName_02, NULL);
+ bRc = CreateDirectoryW(szDirName_02_FindClose_test1, NULL);
if (bRc == FALSE)
{
- pTemp = convertC((WCHAR*)szDirName_02);
+ pTemp = convertC((WCHAR*)szDirName_02_FindClose_test1);
Trace("FindClose: ERROR -> Failed to create the directory \"%s\"\n",
pTemp);
free(pTemp);
return FAIL;
}
- hFind = FindFirstFileW(szDirName, &findFileData);
+ hFind = FindFirstFileW(szDirName_FindClose_test1, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- pTemp = convertC((WCHAR*)szDirName);
+ pTemp = convertC((WCHAR*)szDirName_FindClose_test1);
Trace("FindClose: ERROR. FindFirstFileW was unable to find \"%s\"\n",
pTemp);
free(pTemp);
}
/* find a file using wild cards */
- hFind = FindFirstFileW(szFindNameWldCard_01, &findFileData);
+ hFind = FindFirstFileW(szFindNameWldCard_01_FindClose_test1, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- pTemp = convertC((WCHAR*)szFindNameWldCard_01);
+ pTemp = convertC((WCHAR*)szFindNameWldCard_01_FindClose_test1);
Trace("FindClose: ERROR -> FindFirstFileW was unable to find \"%s\"\n",
pTemp);
free(pTemp);
}
/* find a directory using wild cards */
- hFind = FindFirstFileW(szDirNameWldCard, &findFileData);
+ hFind = FindFirstFileW(szDirNameWldCard_FindClose_test1, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- pTemp = convertC((WCHAR*)szDirNameWldCard);
+ pTemp = convertC((WCHAR*)szDirNameWldCard_FindClose_test1);
Trace("FindClose: ERROR -> Unable to find \"%s\"\n",
pTemp);
free(pTemp);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FindClose
-Name = Test for FindClose (test 1)
-Type = DEFAULT
-EXE1 = findclose
-Description
-= Test the FindClose on handles opened using the Find functions
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- FindFirstFileA.cpp
-)
-
-add_executable(paltest_findfirstfilea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_findfirstfilea_test1 coreclrpal)
-
-target_link_libraries(paltest_findfirstfilea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szNoFileName = "333asdf.x77t";
-const char* szFindName = "test01.txt";
-const char* szFindNameWldCard_01 = "test0?.txt";
-const char* szFindNameWldCard_02 = "*.txt";
-const char* szDirName = "test_dir";
-const char* szDirNameSlash = "test_dir\\";
-const char* szDirNameWldCard_01 = "?est_dir";
-const char* szDirNameWldCard_02 = "test_*";
+#define szNoFileName "333asdf.x77t"
+#define szFindName "test01.txt"
+#define szFindNameWldCard_01 "test0?.txt"
+#define szFindNameWldCard_02 "*.txt"
+#define szDirName "test_dir"
+#define szDirNameSlash "test_dir\\"
+#define szDirNameWldCard_01 "?est_dir"
+#define szDirNameWldCard_02 "test_*"
/* Longer than MAX_LONGPATH characters */
char szLongFindName[MAX_LONGPATH+1];
-BOOL CleanUp()
+BOOL CleanUp_FindFirstFileA_test1()
{
DWORD dwAtt;
BOOL result = TRUE;
return result;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FindFirstFileA_test1_paltest_findfirstfilea_test1, "file_io/FindFirstFileA/test1/paltest_findfirstfilea_test1")
{
WIN32_FIND_DATA findFileData;
HANDLE hFind = NULL;
}
- if(!CleanUp())
+ if(!CleanUp_FindFirstFileA_test1())
{
Fail("FindFirstFileW: ERROR : Initial Clean Up failed\n");
}
Fail ("FindFirstFileA: ERROR -> Unable to find \"%s\"\n", szDirNameWldCard_02);
}
- if(!CleanUp())
+ if(!CleanUp_FindFirstFileA_test1())
{
Fail("FindFirstFileW: ERROR : Final Clean Up failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FindFirstFileA
-Name = Test for FindFirstFileA (test 1)
-Type = DEFAULT
-EXE1 = findfirstfilea
-Description
-= Create a number of files and try to find them
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- FindFirstFileW.cpp
-)
-
-add_executable(paltest_findfirstfilew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_findfirstfilew_test1 coreclrpal)
-
-target_link_libraries(paltest_findfirstfilew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szNoFileName = "333asdf.x77t";
-const char* szFindName = "test01.txt";
-const char* szFindNameWldCard_01 = "test0?.txt";
-const char* szFindNameWldCard_02 = "*.txt";
-const char* szDirName = "test_dir";
-const char* szDirNameSlash = "test_dir\\";
-const char* szDirNameWldCard_01 = "?est_dir";
-const char* szDirNameWldCard_02 = "test_*";
+#define szNoFileName "333asdf.x77t"
+#define szFindName "test01.txt"
+#define szFindNameWldCard_01 "test0?.txt"
+#define szFindNameWldCard_02 "*.txt"
+#define szDirName "test_dir"
+#define szDirNameSlash "test_dir\\"
+#define szDirNameWldCard_01 "?est_dir"
+#define szDirNameWldCard_02 "test_*"
-BOOL CleanUp()
+BOOL CleanUp_FindFirstFileW_test1()
{
DWORD dwAtt;
BOOL result = TRUE;
return result;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FindFirstFileW_test1_paltest_findfirstfilew_test1, "file_io/FindFirstFileW/test1/paltest_findfirstfilew_test1")
{
WIN32_FIND_DATAW findFileData;
HANDLE hFind = NULL;
return FAIL;
}
- if(!CleanUp())
+ if(!CleanUp_FindFirstFileW_test1())
{
Fail("FindFirstFileW: ERROR : Initial Clean Up failed\n");
}
szDirNameWldCard_02);
}
- if(!CleanUp())
+ if(!CleanUp_FindFirstFileW_test1())
{
Fail("FindFirstFileW: ERROR : Final Clean Up failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FindFirstFileW
-Name = Test for FindFirstFileW (test 1)
-Type = DEFAULT
-EXE1 = findfirstfilew
-Description
-= Create a number of files and try to find them
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- FindNextFileA.cpp
-)
-
-add_executable(paltest_findnextfilea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_findnextfilea_test1 coreclrpal)
-
-target_link_libraries(paltest_findnextfilea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szFindName = "test01.txt";
-const char* szFindName_02 = "test02.txt";
-const char* szFindNameWldCard_01 = "test0?.txt";
-const char* szFindNameWldCard_02 = "*.txt";
-const char* szDirName = "test_dir";
-const char* szDirName_02 = "test_dir_02";
-const char* szDirNameWldCard = "test_*";
+#define szFindName "test01.txt"
+#define szFindName_02 "test02.txt"
+#define szFindNameWldCard_01 "test0?.txt"
+#define szFindNameWldCard_02 "*.txt"
+#define szDirName "test_dir"
+#define szDirName_02 "test_dir_02"
+#define szDirNameWldCard "test_*"
-void removeAll()
+void removeAll_FindNextFileA_test1()
{
WCHAR* wTempPtr = NULL;
-BOOL createTestFile(const char* szName)
+BOOL createTestFile_FindNextFileA_test1(const char* szName)
{
FILE *pFile = NULL;
{
Trace("FindNextFile: ERROR -> Unable to create file \"%s\".\n",
szName);
- removeAll();
+ removeAll_FindNextFileA_test1();
return FALSE;
}
else
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FindNextFileA_test1_paltest_findnextfilea_test1, "file_io/FindNextFileA/test1/paltest_findnextfilea_test1")
{
WIN32_FIND_DATA findFileData;
WIN32_FIND_DATA findFileData_02;
{
return FAIL;
}
- removeAll();
+ removeAll_FindNextFileA_test1();
//
//
// find a file that exists
//
- if(createTestFile(szFindName) == FALSE)
+ if(createTestFile_FindNextFileA_test1(szFindName) == FALSE)
{
PAL_TerminateEx(FAIL);
return FAIL;
}
- if(createTestFile(szFindName_02) == FALSE)
+ if(createTestFile_FindNextFileA_test1(szFindName_02) == FALSE)
{
PAL_TerminateEx(FAIL);
return FAIL;
hFind = FindFirstFileA(szFindName, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Unable to find \"%s\"\n", szFindName);
}
else
bRc = FindNextFile(hFind, &findFileData);
if (bRc != FALSE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Found a file that doesn't exist.\n");
}
}
free (wTempPtr);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Failed to create the directory \"%s\"\n",
szDirName);
}
free (wTempPtr);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Failed to create the directory \"%s\"\n",
szDirName_02);
}
hFind = FindFirstFileA(szDirName, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR. FindFirstFileA was unable to find \"%s\"\n",
szDirName);
}
bRc = FindNextFile(hFind, &findFileData);
if (bRc != FALSE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Found a directory that doesn't exist.\n");
}
}
hFind = FindFirstFileA(szFindNameWldCard_01, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> FindFirstFileA was unable to find \"%s\"\n",
szFindNameWldCard_01);
}
bRc = FindNextFile(hFind, &findFileData_02);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Unable to find another file.\n");
}
else
// validate we found the correct file
if (strcmp(findFileData_02.cFileName, findFileData.cFileName) == 0)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Found the same file \"%s\".\n",
findFileData.cFileName);
}
hFind = FindFirstFileA(szDirNameWldCard, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Unable to find \"%s\"\n",
szDirNameWldCard);
}
bRc = FindNextFile(hFind, &findFileData_02);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Unable to find another directory.\n");
}
else
// validate we found the correct directory
if (strcmp(findFileData_02.cFileName, findFileData.cFileName) == 0)
{
- removeAll();
+ removeAll_FindNextFileA_test1();
Fail("FindNextFile: ERROR -> Found the same directory \"%s\".\n",
findFileData.cFileName);
}
// attempt to write to the hFind handle (which should fail)
//
bRc = WriteFile(hFind, "this is a test", 10, &dwBytesWritten, NULL);
- removeAll();
+ removeAll_FindNextFileA_test1();
if (bRc == TRUE)
{
Fail("FindNextFile: ERROR -> Able to write to a FindNextFile handle.\n");
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FindNextFileA
-Name = Test for FindNextFileA (test 1)
-Type = DEFAULT
-EXE1 = findnextfilea
-Description
-= Create test files and directories to verify FindNextFileA
-
+++ /dev/null
-set(SOURCES
- findnextfilea.cpp
-)
-
-add_executable(paltest_findnextfilea_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_findnextfilea_test2 coreclrpal)
-
-target_link_libraries(paltest_findnextfilea_test2
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FindNextFileA_test2_paltest_findnextfilea_test2, "file_io/FindNextFileA/test2/paltest_findnextfilea_test2")
{
if (0 != PAL_Initialize(argc,argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FindNextFileA
-Name = Test for FindNextFileA (test 2)
-Type = DEFAULT
-EXE1 = findnextfilea
-Description
-= Tests the PAL implementation of the FindNextFileA function.
-= Tests '*' and '*.*' to ensure that '.' and '..' are
-= returned in the expected order
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- FindNextFileW.cpp
-)
-
-add_executable(paltest_findnextfilew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_findnextfilew_test1 coreclrpal)
-
-target_link_libraries(paltest_findnextfilew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szFindName = "test01.txt";
-const char* szFindName_02 = "test02.txt";
-const char* szFindNameWldCard_01 = "test0?.txt";
-const char* szFindNameWldCard_02 = "*.txt";
-const char* szDirName = "test_dir";
-const char* szDirName_02 = "test_dir_02";
-const char* szDirNameWldCard = "test_*";
-
-
-
-void removeAll()
+#define szFindName "test01.txt"
+#define szFindName_02 "test02.txt"
+#define szFindNameWldCard_01 "test0?.txt"
+#define szFindNameWldCard_02 "*.txt"
+#define szDirName "test_dir"
+#define szDirName_02 "test_dir_02"
+#define szDirNameWldCard "test_*"
+
+void removeAll_FindNextFileW_test1()
{
WCHAR* wTempPtr = NULL;
-BOOL createTestFile(const char* szName)
+BOOL createTestFile_FindNextFileW_test1(const char* szName)
{
FILE *pFile = NULL;
if (pFile == NULL)
{
Trace("FindNextFileW: ERROR -> Unable to create file \"%s\".\n", szName);
- removeAll();
+ removeAll_FindNextFileW_test1();
return FALSE;
}
else
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FindNextFileW_test1_paltest_findnextfilew_test1, "file_io/FindNextFileW/test1/paltest_findnextfilew_test1")
{
WIN32_FIND_DATAW findFileData;
WIN32_FIND_DATAW findFileData_02;
{
return FAIL;
}
- removeAll();
+ removeAll_FindNextFileW_test1();
//
// find a file that exists
//
- if(createTestFile(szFindName) == FALSE)
+ if(createTestFile_FindNextFileW_test1(szFindName) == FALSE)
{
PAL_TerminateEx(FAIL);
return FAIL;
}
- if(createTestFile(szFindName_02) == FALSE)
+ if(createTestFile_FindNextFileW_test1(szFindName_02) == FALSE)
{
PAL_TerminateEx(FAIL);
return FAIL;
free(wTempPtr);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Unable to find \"%s\"\n", szFindName);
}
else
bRc = FindNextFileW(hFind, &findFileData);
if (bRc != FALSE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Found a file that doesn't exist.\n");
}
}
free (wTempPtr);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Failed to create the directory \"%s\"\n",
szDirName);
}
free (wTempPtr);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Failed to create the directory "
"\"%s\"\n",
szDirName_02);
free (wTempPtr);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR. FindFirstFileW was unable "
"to find \"%s\"\n",
szDirName);
bRc = FindNextFileW(hFind, &findFileData);
if (bRc != FALSE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Found a directory that "
"doesn't exist.\n");
}
free(wTempPtr);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> FindFirstFileW was unable to "
"find \"%s\"\n",
szFindNameWldCard_01);
bRc = FindNextFileW(hFind, &findFileData_02);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Unable to find another file.\n");
}
else
// validate we found the correct file
if (wcscmp(findFileData_02.cFileName, findFileData.cFileName) == 0)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Found the same file \"%S\".\n",
findFileData.cFileName);
}
free(wTempPtr);
if (hFind == INVALID_HANDLE_VALUE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Unable to find \"%s\"\n",
szDirNameWldCard);
}
bRc = FindNextFileW(hFind, &findFileData_02);
if (bRc == FALSE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Unable to find another directory.\n");
}
else
// validate we found the correct directory
if (wcscmp(findFileData_02.cFileName, findFileData.cFileName) == 0)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Found the same directory "
"\"%S\".\n",
findFileData.cFileName);
bRc = WriteFile(hFind, "this is a test", 10, &dwBytesWritten, NULL);
if (bRc == TRUE)
{
- removeAll();
+ removeAll_FindNextFileW_test1();
Fail("FindNextFileW: ERROR -> Able to write to a FindNextFileW "
"handle.\n");
}
- removeAll();
+ removeAll_FindNextFileW_test1();
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FindNextFileW
-Name = Test for FindNextFileW (test 1)
-Type = DEFAULT
-EXE1 = findnextfilew
-Description
-= Create test files and directories to verify FindNextFileW
-
+++ /dev/null
-set(SOURCES
- findnextfilew.cpp
-)
-
-add_executable(paltest_findnextfilew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_findnextfilew_test2 coreclrpal)
-
-target_link_libraries(paltest_findnextfilew_test2
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_FindNextFileW_test2_paltest_findnextfilew_test2, "file_io/FindNextFileW/test2/paltest_findnextfilew_test2")
{
if (0 != PAL_Initialize(argc,argv))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FindNextFileW
-Name = Test for FindNextFileW (test 2)
-Type = DEFAULT
-EXE1 = findnextfilew
-Description
-= Tests the PAL implementation of the FindNextFileW function.
-= Tests '*' and '*.*' to ensure that '.' and '..' are
-= returned in the expected order
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- FlushFileBuffers.cpp
-)
-
-add_executable(paltest_flushfilebuffers_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_flushfilebuffers_test1 coreclrpal)
-
-target_link_libraries(paltest_flushfilebuffers_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(file_io_FlushFileBuffers_test1_paltest_flushfilebuffers_test1, "file_io/FlushFileBuffers/test1/paltest_flushfilebuffers_test1")
{
int TheReturn;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = FlushFileBuffers
-Name = Positive Test for FlushFileBuffers
-TYPE = DEFAULT
-EXE1 = flushfilebuffers
-Description
-= Test the FlushFileBuffers
-= Test the return values -- ensure that the correct values are
-= returned for success and failure.
-= This test does not prove that flush worked,
-= there is no way of stopping the OS from flushing
-= the file by itself.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetConsoleOutputCP.cpp
-)
-
-add_executable(paltest_getconsoleoutputcp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getconsoleoutputcp_test1 coreclrpal)
-
-target_link_libraries(paltest_getconsoleoutputcp_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetConsoleOutputCP_test1_paltest_getconsoleoutputcp_test1, "file_io/GetConsoleOutputCP/test1/paltest_getconsoleoutputcp_test1")
{
UINT uiCP = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetConsoleOutputCP
-Name = Positive Test for GetConsoleOutputCP (test 1)
-Type = DEFAULT
-EXE1 = getconsoleoutputcp
-Description
-= Test GetConsoleOutputCP. Apparently there are only two possible
-= return values: CP_ACP or 1252
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetCurrentDirectoryA.cpp
-)
-
-add_executable(paltest_getcurrentdirectorya_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcurrentdirectorya_test1 coreclrpal)
-
-target_link_libraries(paltest_getcurrentdirectorya_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szFileName = "blah";
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetCurrentDirectoryA_test1_paltest_getcurrentdirectorya_test1, "file_io/GetCurrentDirectoryA/test1/paltest_getcurrentdirectorya_test1")
{
+ const char* szFileName = "blah";
+
DWORD dwRc = 0;
DWORD dwRc2 = 0;
char szReturnedPath[_MAX_PATH+1];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetCurrentDirectoryA
-Name = Test for GetCurrentDirectoryA (test 1)
-Type = DEFAULT
-EXE1 = getcurrentdirectorya
-Description
-= Calculate the current directory name and compare to that
-= returned by GetCurrentDirectoryA
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetCurrentDirectoryW.cpp
-)
-
-add_executable(paltest_getcurrentdirectoryw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcurrentdirectoryw_test1 coreclrpal)
-
-target_link_libraries(paltest_getcurrentdirectoryw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetCurrentDirectoryW_test1_paltest_getcurrentdirectoryw_test1, "file_io/GetCurrentDirectoryW/test1/paltest_getcurrentdirectoryw_test1")
{
DWORD dwRc = 0;
DWORD dwRc2 = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetCurrentDirectoryW
-Name = Test for GetCurrentDirectoryW (test 1)
-Type = DEFAULT
-EXE1 = getcurrentdirectoryw
-Description
-= Compute the current directory and compare with the results
-= from GetCurrentDirectoryW
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetFileAttributesA.cpp
-)
-
-add_executable(paltest_getfileattributesa_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfileattributesa_test1 coreclrpal)
-
-target_link_libraries(paltest_getfileattributesa_test1
- ${COMMON_TEST_LIBRARIES}
-)
-add_subdirectory(.hidden_directory)
-add_subdirectory(.hidden_ro_directory)
-add_subdirectory(normal_test_directory)
-add_subdirectory(no_directory)
-add_subdirectory(ro_test_directory)
-add_subdirectory(rw_directory)
-
int isFile; /* is file (1) or dir (0) */
}TestCaseDir;
-DWORD desiredAccessFile = GENERIC_READ | GENERIC_WRITE;
-DWORD shareModeFile = FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE;
-LPSECURITY_ATTRIBUTES lpAttrFile = NULL;
-DWORD dwCreationDispFile = CREATE_NEW;
-DWORD dwFlagsAttribFile = FILE_ATTRIBUTE_NORMAL;
-HANDLE hTemplateFile = NULL;
+DWORD desiredAccessFile_GetFileAttributesA_test1 = GENERIC_READ | GENERIC_WRITE;
+DWORD shareModeFile_GetFileAttributesA_test1 = FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE;
+LPSECURITY_ATTRIBUTES lpAttrFile_GetFileAttributesA_test1 = NULL;
+DWORD dwCreationDispFile_GetFileAttributesA_test1 = CREATE_NEW;
+DWORD dwFlagsAttribFile_GetFileAttributesA_test1 = FILE_ATTRIBUTE_NORMAL;
+HANDLE hTemplateFile_GetFileAttributesA_test1 = NULL;
-int numFileTests = 6;
-TestCaseFile gfaTestsFile[6]; /* GetFileAttributes tests list */
+int numFileTests_A = 6;
+TestCaseFile gfaTestsFile_A[6]; /* GetFileAttributes tests list */
-int numDirTests = 6;
-TestCaseDir gfaTestsDir[6]; /* GetFileAttributes tests list */
+int numDirTests_A = 6;
+TestCaseDir gfaTestsDir_A[6]; /* GetFileAttributes tests list */
-BOOL CleanUpFiles()
+BOOL CleanUpFiles_GetFileAttributesA_test1()
{
DWORD dwAtt;
int i;
BOOL result = TRUE;
- for (i = 0; i < numFileTests -1 ; i++ )
+ for (i = 0; i < numFileTests_A -1 ; i++ )
{
- dwAtt = GetFileAttributesA(gfaTestsFile[i].name);
+ dwAtt = GetFileAttributesA(gfaTestsFile_A[i].name);
if( dwAtt != INVALID_FILE_ATTRIBUTES )
{
//Trace("Files iteration %d\n", i);
- if(!SetFileAttributesA (gfaTestsFile[i].name, FILE_ATTRIBUTE_NORMAL))
+ if(!SetFileAttributesA (gfaTestsFile_A[i].name, FILE_ATTRIBUTE_NORMAL))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile[i].name, FILE_ATTRIBUTE_NORMAL);
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile_A[i].name, FILE_ATTRIBUTE_NORMAL);
}
- if(!DeleteFileA (gfaTestsFile[i].name))
+ if(!DeleteFileA (gfaTestsFile_A[i].name))
{
result = FALSE;
- Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsFile[i].name, dwAtt);
+ Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsFile_A[i].name, dwAtt);
}
}
// Trace("Value of result is %d\n", result);
return result;
}
-BOOL SetUpFiles()
+BOOL SetUpFiles_GetFileAttributesA_test1()
{
int i = 0;
BOOL result = TRUE;
- for (i = 0; i < numFileTests -1; i++ )
+ for (i = 0; i < numFileTests_A -1; i++ )
{
- gfaTestsFile[i].hFile = CreateFile(gfaTestsFile[i].name,
- desiredAccessFile,
- shareModeFile,
- lpAttrFile,
- dwCreationDispFile,
- dwFlagsAttribFile,
- hTemplateFile);
-
- if( gfaTestsFile[i].hFile == NULL )
+ gfaTestsFile_A[i].hFile = CreateFile(gfaTestsFile_A[i].name,
+ desiredAccessFile_GetFileAttributesA_test1,
+ shareModeFile_GetFileAttributesA_test1,
+ lpAttrFile_GetFileAttributesA_test1,
+ dwCreationDispFile_GetFileAttributesA_test1,
+ dwFlagsAttribFile_GetFileAttributesA_test1,
+ hTemplateFile_GetFileAttributesA_test1);
+
+ if( gfaTestsFile_A[i].hFile == NULL )
{
Fail("Error while creating files for iteration %d\n", i);
}
- if(!SetFileAttributesA (gfaTestsFile[i].name, gfaTestsFile[i].expectedAttribs))
+ if(!SetFileAttributesA (gfaTestsFile_A[i].name, gfaTestsFile_A[i].expectedAttribs))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile[i].name, gfaTestsFile[i].expectedAttribs);
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile_A[i].name, gfaTestsFile_A[i].expectedAttribs);
}
}
return result;
}
-BOOL CleanUpDirs()
+BOOL CleanUpDirs_GetFileAttributesA_test1()
{
DWORD dwAtt;
int i;
BOOL result = TRUE;
- for (i = 0; i < numDirTests -1 ; i++ )
+ for (i = 0; i < numDirTests_A -1 ; i++ )
{
- dwAtt = GetFileAttributesA(gfaTestsDir[i].name);
+ dwAtt = GetFileAttributesA(gfaTestsDir_A[i].name);
if( dwAtt != INVALID_FILE_ATTRIBUTES )
{
- if(!SetFileAttributesA (gfaTestsDir[i].name, FILE_ATTRIBUTE_DIRECTORY))
+ if(!SetFileAttributesA (gfaTestsDir_A[i].name, FILE_ATTRIBUTE_DIRECTORY))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir[i].name, (FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_DIRECTORY));
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir_A[i].name, (FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_DIRECTORY));
}
- LPWSTR nameW = convert(gfaTestsDir[i].name);
+ LPWSTR nameW = convert(gfaTestsDir_A[i].name);
if(!RemoveDirectoryW (nameW))
{
result = FALSE;
- Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsDir[i].name, dwAtt);
+ Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsDir_A[i].name, dwAtt);
}
free(nameW);
return result;
}
-BOOL SetUpDirs()
+BOOL SetUpDirs_GetFileAttributesA_test1()
{
int i = 0;
BOOL result = TRUE;
DWORD ret = 0;
- for (i = 0; i < numDirTests - 1 ; i++ )
+ for (i = 0; i < numDirTests_A - 1 ; i++ )
{
- result = CreateDirectoryA(gfaTestsDir[i].name,
+ result = CreateDirectoryA(gfaTestsDir_A[i].name,
NULL);
if(!result )
Fail("Error while creating directory for iteration %d\n", i);
}
- if(!SetFileAttributesA (gfaTestsDir[i].name, gfaTestsDir[i].expectedAttribs))
+ if(!SetFileAttributesA (gfaTestsDir_A[i].name, gfaTestsDir_A[i].expectedAttribs))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir[i].name, gfaTestsDir[i].expectedAttribs);
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir_A[i].name, gfaTestsDir_A[i].expectedAttribs);
}
- ret = GetFileAttributesA (gfaTestsDir[i].name);
- if(ret != gfaTestsDir[i].expectedAttribs)
+ ret = GetFileAttributesA (gfaTestsDir_A[i].name);
+ if(ret != gfaTestsDir_A[i].expectedAttribs)
{
result = FALSE;
- Trace("ERROR: Error setting attributes [%s][%d]\n", gfaTestsDir[i].name, gfaTestsDir[i].expectedAttribs);
+ Trace("ERROR: Error setting attributes [%s][%d]\n", gfaTestsDir_A[i].name, gfaTestsDir_A[i].expectedAttribs);
}
- //Trace("Setup Dir setting attr [%d], returned [%d]\n", gfaTestsDir[i].expectedAttribs, ret);
+ //Trace("Setup Dir setting attr [%d], returned [%d]\n", gfaTestsDir_A[i].expectedAttribs, ret);
}
//Trace("Setup dirs returning %d\n", result);
return result;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(file_io_GetFileAttributesA_test1_paltest_getfileattributesa_test1, "file_io/GetFileAttributesA/test1/paltest_getfileattributesa_test1")
{
int i;
BOOL bFailed = FALSE;
char * NotReallyAFileName = "not_really_a_file";
/* Tests on directory */
- gfaTestsDir[0].name = NormalDirectoryName;
- gfaTestsDir[0].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
- gfaTestsDir[0].isFile = TYPE_DIR;
+ gfaTestsDir_A[0].name = NormalDirectoryName;
+ gfaTestsDir_A[0].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
+ gfaTestsDir_A[0].isFile = TYPE_DIR;
- gfaTestsDir[1].name = ReadOnlyDirectoryName;
- gfaTestsDir[1].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
+ gfaTestsDir_A[1].name = ReadOnlyDirectoryName;
+ gfaTestsDir_A[1].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
FILE_ATTRIBUTE_READONLY;
- gfaTestsDir[1].isFile = TYPE_DIR;
+ gfaTestsDir_A[1].isFile = TYPE_DIR;
- gfaTestsDir[2].name = ReadWriteDirectoryName;
- gfaTestsDir[2].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
- gfaTestsDir[2].isFile = TYPE_DIR;
+ gfaTestsDir_A[2].name = ReadWriteDirectoryName;
+ gfaTestsDir_A[2].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
+ gfaTestsDir_A[2].isFile = TYPE_DIR;
- gfaTestsDir[3].name = HiddenDirectoryName;
- gfaTestsDir[3].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY; //|
+ gfaTestsDir_A[3].name = HiddenDirectoryName;
+ gfaTestsDir_A[3].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY; //|
//FILE_ATTRIBUTE_HIDDEN;
- gfaTestsDir[3].isFile = TYPE_DIR;
+ gfaTestsDir_A[3].isFile = TYPE_DIR;
- gfaTestsDir[4].name = HiddenReadOnlyDirectoryName;
- gfaTestsDir[4].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
+ gfaTestsDir_A[4].name = HiddenReadOnlyDirectoryName;
+ gfaTestsDir_A[4].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
FILE_ATTRIBUTE_READONLY; //|
//FILE_ATTRIBUTE_HIDDEN;
- gfaTestsDir[4].isFile = TYPE_DIR;
+ gfaTestsDir_A[4].isFile = TYPE_DIR;
- gfaTestsDir[5].name = NoDirectoryName;
- gfaTestsDir[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
- gfaTestsDir[5].isFile = TYPE_DIR;
+ gfaTestsDir_A[5].name = NoDirectoryName;
+ gfaTestsDir_A[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
+ gfaTestsDir_A[5].isFile = TYPE_DIR;
/* Tests on file */
- gfaTestsFile[0].name = NormalFileName;
- gfaTestsFile[0].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
- gfaTestsFile[0].isFile = TYPE_FILE;
+ gfaTestsFile_A[0].name = NormalFileName;
+ gfaTestsFile_A[0].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
+ gfaTestsFile_A[0].isFile = TYPE_FILE;
- gfaTestsFile[1].name = ReadOnlyFileName;
- gfaTestsFile[1].expectedAttribs = FILE_ATTRIBUTE_READONLY;
- gfaTestsFile[1].isFile = TYPE_FILE;
+ gfaTestsFile_A[1].name = ReadOnlyFileName;
+ gfaTestsFile_A[1].expectedAttribs = FILE_ATTRIBUTE_READONLY;
+ gfaTestsFile_A[1].isFile = TYPE_FILE;
- gfaTestsFile[2].name = ReadWriteFileName;
- gfaTestsFile[2].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
- gfaTestsFile[2].isFile = TYPE_FILE;
+ gfaTestsFile_A[2].name = ReadWriteFileName;
+ gfaTestsFile_A[2].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
+ gfaTestsFile_A[2].isFile = TYPE_FILE;
- gfaTestsFile[3].name = HiddenFileName;
- gfaTestsFile[3].expectedAttribs = FILE_ATTRIBUTE_NORMAL; //FILE_ATTRIBUTE_HIDDEN;
- gfaTestsFile[3].isFile = TYPE_FILE;
+ gfaTestsFile_A[3].name = HiddenFileName;
+ gfaTestsFile_A[3].expectedAttribs = FILE_ATTRIBUTE_NORMAL; //FILE_ATTRIBUTE_HIDDEN;
+ gfaTestsFile_A[3].isFile = TYPE_FILE;
- gfaTestsFile[4].name = HiddenReadOnlyFileName;
- gfaTestsFile[4].expectedAttribs = FILE_ATTRIBUTE_READONLY; //|
+ gfaTestsFile_A[4].name = HiddenReadOnlyFileName;
+ gfaTestsFile_A[4].expectedAttribs = FILE_ATTRIBUTE_READONLY; //|
//FILE_ATTRIBUTE_HIDDEN;
- gfaTestsFile[4].isFile = TYPE_FILE;
+ gfaTestsFile_A[4].isFile = TYPE_FILE;
- gfaTestsFile[5].name = NotReallyAFileName;
- gfaTestsFile[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
- gfaTestsFile[5].isFile = TYPE_FILE;
+ gfaTestsFile_A[5].name = NotReallyAFileName;
+ gfaTestsFile_A[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
+ gfaTestsFile_A[5].isFile = TYPE_FILE;
/* Initialize PAL environment */
if (0 != PAL_Initialize(argc,argv))
return FAIL;
}
- if(!CleanUpFiles())
+ if(!CleanUpFiles_GetFileAttributesA_test1())
{
Fail("GetFileAttributesA: Pre-Clean Up Files Failed\n");
}
- if(0 == SetUpFiles())
+ if(0 == SetUpFiles_GetFileAttributesA_test1())
{
Fail("GetFileAttributesA: SetUp Files Failed\n");
}
- if(!CleanUpDirs())
+ if(!CleanUpDirs_GetFileAttributesA_test1())
{
Fail("GetFileAttributesA: Pre-Clean Up Directories Failed\n");
}
- if(!SetUpDirs())
+ if(!SetUpDirs_GetFileAttributesA_test1())
{
Fail("GetFileAttributesA: SetUp Directories Failed\n");
}
* call GetFileAttributesA on the name and
* make sure the return value is the one expected
*/
- for( i = 0; i < numFileTests; i++ )
+ for( i = 0; i < numFileTests_A; i++ )
{
- result = GetFileAttributesA(gfaTestsFile[i].name);
+ result = GetFileAttributesA(gfaTestsFile_A[i].name);
- if( result != gfaTestsFile[i].expectedAttribs )
+ if( result != gfaTestsFile_A[i].expectedAttribs )
{
bFailed = TRUE;
Trace("ERROR: GetFileAttributesA Test#%u on %s "
"returned %u instead of %u. \n",
i,
- gfaTestsFile[i].name,
+ gfaTestsFile_A[i].name,
result,
- gfaTestsFile[i].expectedAttribs);
+ gfaTestsFile_A[i].expectedAttribs);
}
}
- for( i = 0; i < numDirTests; i++ )
+ for( i = 0; i < numDirTests_A; i++ )
{
- result = GetFileAttributesA(gfaTestsDir[i].name);
+ result = GetFileAttributesA(gfaTestsDir_A[i].name);
- if( result != gfaTestsDir[i].expectedAttribs )
+ if( result != gfaTestsDir_A[i].expectedAttribs )
{
bFailed = TRUE;
Trace("ERROR: GetFileAttributesA on Directories Test#%u on %s "
"returned %u instead of %u. \n",
i,
- gfaTestsDir[i].name,
+ gfaTestsDir_A[i].name,
result,
- gfaTestsDir[i].expectedAttribs);
+ gfaTestsDir_A[i].expectedAttribs);
}
}
- if(!CleanUpFiles())
+ if(!CleanUpFiles_GetFileAttributesA_test1())
{
Fail("GetFileAttributesA: Post-Clean Up Files Failed\n");
}
- if(!CleanUpDirs())
+ if(!CleanUpDirs_GetFileAttributesA_test1())
{
Fail("GetFileAttributesA: Post-Clean Up Directories Failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = file_io
-
-Function = GetFileAttributesA
-
-Name = Positive Test for GetFileAttributesA
-
-TYPE = DEFAULT
-
-EXE1 = getfileattributesa
-
-Description
-
-= Test the GetFileAttributesA function
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_getfileattributesexw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfileattributesexw_test1 coreclrpal)
-
-target_link_libraries(paltest_getfileattributesexw_test1
- ${COMMON_TEST_LIBRARIES}
-)
-add_subdirectory(.hidden_directory)
-add_subdirectory(normal_test_directory)
-add_subdirectory(ro_test_directory)
-
results are correct.
*/
-void RunTest(char* Name, DWORD Attribs, ItemType TheType )
+void RunTest_GetFileAttributesExW_test1(char* Name, DWORD Attribs, ItemType TheType )
{
WCHAR* TheName;
WIN32_FILE_ATTRIBUTE_DATA InfoStruct;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(file_io_GetFileAttributesExW_test1_paltest_getfileattributesexw_test1, "file_io/GetFileAttributesExW/test1/paltest_getfileattributesexw_test1")
{
DWORD TheResult;
WCHAR* FileName;
}
/* Test a Directroy */
- RunTest("normal_test_directory", FILE_ATTRIBUTE_DIRECTORY, IS_DIR);
+ RunTest_GetFileAttributesExW_test1("normal_test_directory", FILE_ATTRIBUTE_DIRECTORY, IS_DIR);
/* Test a Normal File */
- RunTest("normal_test_file", FILE_ATTRIBUTE_NORMAL, IS_FILE);
+ RunTest_GetFileAttributesExW_test1("normal_test_file", FILE_ATTRIBUTE_NORMAL, IS_FILE);
/* Test a Read-Only Directroy */
- RunTest("ro_test_directory",
+ RunTest_GetFileAttributesExW_test1("ro_test_directory",
FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_DIRECTORY, IS_DIR);
/* Test a Read-Only File */
- RunTest("ro_test_file", FILE_ATTRIBUTE_READONLY, IS_FILE);
+ RunTest_GetFileAttributesExW_test1("ro_test_file", FILE_ATTRIBUTE_READONLY, IS_FILE);
/* Test a Hidden File */
- RunTest(".hidden_file", FILE_ATTRIBUTE_HIDDEN, IS_FILE);
+ RunTest_GetFileAttributesExW_test1(".hidden_file", FILE_ATTRIBUTE_HIDDEN, IS_FILE);
/* Test a Hidden Directroy */
- RunTest(".hidden_directory",
+ RunTest_GetFileAttributesExW_test1(".hidden_directory",
FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_DIRECTORY, IS_DIR);
/* Test a Non-Existant File */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFileAttributesExW
-Name = Test with normal file/dir and readonly file/dir and hidden file/dir
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the GetFileAttributesExW function.
-= Call the function on a normal directory and file and a read-only directory
-= and file and a hidden file and directory.
-= Ensure that the attributes returned are correct, and the
-= file times and file sizes.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_getfileattributesexw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfileattributesexw_test2 coreclrpal)
-
-target_link_libraries(paltest_getfileattributesexw_test2
- ${COMMON_TEST_LIBRARIES}
-)
return(TimeOne <= TimeTwo);
}
-int __cdecl main(int argc, char **argv)
+PALTEST(file_io_GetFileAttributesExW_test2_paltest_getfileattributesexw_test2, "file_io/GetFileAttributesExW/test2/paltest_getfileattributesexw_test2")
{
DWORD res;
char fileName[MAX_PATH] = "test_file";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFileAttributesExW
-Name = Test for GetFileAttributesExW
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the GetFileAttributesExW function.
-= First get a file's attributes, modify the file, re-get its attributes
-= and compare the two sets of attributes
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetFileAttributesW.cpp
-)
-
-add_executable(paltest_getfileattributesw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfileattributesw_test1 coreclrpal)
-
-target_link_libraries(paltest_getfileattributesw_test1
- ${COMMON_TEST_LIBRARIES}
-)
-add_subdirectory(.hidden_directory)
-add_subdirectory(.hidden_ro_directory)
-add_subdirectory(normal_test_directory)
-add_subdirectory(no_directory)
-add_subdirectory(ro_test_directory)
-add_subdirectory(rw_test_directory)
-
int isFile; /* is file (1) or dir (0) */
}TestCaseDir;
-DWORD desiredAccessFile = GENERIC_READ | GENERIC_WRITE;
-DWORD shareModeFile = FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE;
-LPSECURITY_ATTRIBUTES lpAttrFile = NULL;
-DWORD dwCreationDispFile = CREATE_NEW;
-DWORD dwFlagsAttribFile = FILE_ATTRIBUTE_NORMAL;
-HANDLE hTemplateFile = NULL;
+DWORD desiredAccessFile_GetFileAttributesW_test1 = GENERIC_READ | GENERIC_WRITE;
+DWORD shareModeFile_GetFileAttributesW_test1 = FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE;
+LPSECURITY_ATTRIBUTES lpAttrFile_GetFileAttributesW_test1 = NULL;
+DWORD dwCreationDispFile_GetFileAttributesW_test1 = CREATE_NEW;
+DWORD dwFlagsAttribFile_GetFileAttributesW_test1 = FILE_ATTRIBUTE_NORMAL;
+HANDLE hTemplateFile_GetFileAttributesW_test1 = NULL;
-int numFileTests = 6;
-TestCaseFile gfaTestsFile[6]; /* GetFileAttributes tests list */
+int numFileTests_GetFileAttributesW_test1 = 6;
+TestCaseFile gfaTestsFile_GetFileAttributesW_test1[6]; /* GetFileAttributes tests list */
-int numDirTests = 6;
-TestCaseDir gfaTestsDir[6]; /* GetFileAttributes tests list */
+int numDirTests_GetFileAttributesW_test1 = 6;
+TestCaseDir gfaTestsDir_GetFileAttributesW_test1[6]; /* GetFileAttributes tests list */
-BOOL CleanUpFiles()
+BOOL CleanUpFiles_GetFileAttributesW_test1()
{
DWORD dwAtt;
int i;
BOOL result = TRUE;
- for (i = 0; i < numFileTests - 1 ; i++ )
+ for (i = 0; i < numFileTests_GetFileAttributesW_test1 - 1 ; i++ )
{
- dwAtt = GetFileAttributesA(gfaTestsFile[i].name);
+ dwAtt = GetFileAttributesA(gfaTestsFile_GetFileAttributesW_test1[i].name);
if( dwAtt != INVALID_FILE_ATTRIBUTES )
{
//Trace("Files iteration %d\n", i);
- if(!SetFileAttributesA (gfaTestsFile[i].name, FILE_ATTRIBUTE_NORMAL))
+ if(!SetFileAttributesA (gfaTestsFile_GetFileAttributesW_test1[i].name, FILE_ATTRIBUTE_NORMAL))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile[i].name, FILE_ATTRIBUTE_NORMAL);
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile_GetFileAttributesW_test1[i].name, FILE_ATTRIBUTE_NORMAL);
}
- if(!DeleteFileA (gfaTestsFile[i].name))
+ if(!DeleteFileA (gfaTestsFile_GetFileAttributesW_test1[i].name))
{
result = FALSE;
- Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsFile[i].name, dwAtt);
+ Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsFile_GetFileAttributesW_test1[i].name, dwAtt);
}
}
// Trace("Value of result is %d\n", result);
return result;
}
-BOOL SetUpFiles()
+BOOL SetUpFiles_GetFileAttributesW_test1()
{
int i = 0;
BOOL result = TRUE;
- for (i = 0; i < numFileTests - 1 ; i++ )
+ for (i = 0; i < numFileTests_GetFileAttributesW_test1 - 1 ; i++ )
{
- gfaTestsFile[i].hFile = CreateFile(gfaTestsFile[i].name,
- desiredAccessFile,
- shareModeFile,
- lpAttrFile,
- dwCreationDispFile,
- dwFlagsAttribFile,
- hTemplateFile);
-
- if( gfaTestsFile[i].hFile == NULL )
+ gfaTestsFile_GetFileAttributesW_test1[i].hFile = CreateFile(gfaTestsFile_GetFileAttributesW_test1[i].name,
+ desiredAccessFile_GetFileAttributesW_test1,
+ shareModeFile_GetFileAttributesW_test1,
+ lpAttrFile_GetFileAttributesW_test1,
+ dwCreationDispFile_GetFileAttributesW_test1,
+ dwFlagsAttribFile_GetFileAttributesW_test1,
+ hTemplateFile_GetFileAttributesW_test1);
+
+ if( gfaTestsFile_GetFileAttributesW_test1[i].hFile == NULL )
{
Fail("Error while creating files for iteration %d\n", i);
}
- if(!SetFileAttributesA (gfaTestsFile[i].name, gfaTestsFile[i].expectedAttribs))
+ if(!SetFileAttributesA (gfaTestsFile_GetFileAttributesW_test1[i].name, gfaTestsFile_GetFileAttributesW_test1[i].expectedAttribs))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile[i].name, gfaTestsFile[i].expectedAttribs);
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsFile_GetFileAttributesW_test1[i].name, gfaTestsFile_GetFileAttributesW_test1[i].expectedAttribs);
}
}
return result;
}
-BOOL CleanUpDirs()
+BOOL CleanUpDirs_GetFileAttributesW_test1()
{
DWORD dwAtt;
int i;
BOOL result = TRUE;
- for (i = 0; i < numDirTests - 1; i++ )
+ for (i = 0; i < numDirTests_GetFileAttributesW_test1 - 1; i++ )
{
- dwAtt = GetFileAttributesA(gfaTestsDir[i].name);
+ dwAtt = GetFileAttributesA(gfaTestsDir_GetFileAttributesW_test1[i].name);
if( dwAtt != INVALID_FILE_ATTRIBUTES )
{
- if(!SetFileAttributesA (gfaTestsDir[i].name, FILE_ATTRIBUTE_DIRECTORY))
+ if(!SetFileAttributesA (gfaTestsDir_GetFileAttributesW_test1[i].name, FILE_ATTRIBUTE_DIRECTORY))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir[i].name, (FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_DIRECTORY));
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir_GetFileAttributesW_test1[i].name, (FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_DIRECTORY));
}
- LPWSTR nameW = convert(gfaTestsDir[i].name);
+ LPWSTR nameW = convert(gfaTestsDir_GetFileAttributesW_test1[i].name);
if(!RemoveDirectoryW (nameW))
{
result = FALSE;
- Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsDir[i].name, dwAtt);
+ Trace("ERROR:%d: Error deleting file [%s][%d]\n", GetLastError(), gfaTestsDir_GetFileAttributesW_test1[i].name, dwAtt);
}
free(nameW);
return result;
}
-BOOL SetUpDirs()
+BOOL SetUpDirs_GetFileAttributesW_test1()
{
int i = 0;
BOOL result = TRUE;
DWORD ret = 0;
- for (i = 0; i < numDirTests - 1; i++ )
+ for (i = 0; i < numDirTests_GetFileAttributesW_test1 - 1; i++ )
{
- result = CreateDirectoryA(gfaTestsDir[i].name,
+ result = CreateDirectoryA(gfaTestsDir_GetFileAttributesW_test1[i].name,
NULL);
if(!result )
Fail("Error while creating directory for iteration %d\n", i);
}
- if(!SetFileAttributesA (gfaTestsDir[i].name, gfaTestsDir[i].expectedAttribs))
+ if(!SetFileAttributesA (gfaTestsDir_GetFileAttributesW_test1[i].name, gfaTestsDir_GetFileAttributesW_test1[i].expectedAttribs))
{
result = FALSE;
- Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir[i].name, gfaTestsDir[i].expectedAttribs);
+ Trace("ERROR:%d: Error setting attributes [%s][%d]\n", GetLastError(), gfaTestsDir_GetFileAttributesW_test1[i].name, gfaTestsDir_GetFileAttributesW_test1[i].expectedAttribs);
}
- ret = GetFileAttributesA (gfaTestsDir[i].name);
- if(ret != gfaTestsDir[i].expectedAttribs)
+ ret = GetFileAttributesA (gfaTestsDir_GetFileAttributesW_test1[i].name);
+ if(ret != gfaTestsDir_GetFileAttributesW_test1[i].expectedAttribs)
{
result = FALSE;
- Trace("ERROR: Error setting attributes [%s][%d]\n", gfaTestsDir[i].name, gfaTestsDir[i].expectedAttribs);
+ Trace("ERROR: Error setting attributes [%s][%d]\n", gfaTestsDir_GetFileAttributesW_test1[i].name, gfaTestsDir_GetFileAttributesW_test1[i].expectedAttribs);
}
- // Trace("Setup Dir setting attr [%d], returned [%d]\n", gfaTestsDir[i].expectedAttribs, ret);
+ // Trace("Setup Dir setting attr [%d], returned [%d]\n", gfaTestsDir_GetFileAttributesW_test1[i].expectedAttribs, ret);
}
// Trace("Setup dirs returning %d\n", result);
return result;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(file_io_GetFileAttributesW_test1_paltest_getfileattributesw_test1, "file_io/GetFileAttributesW/test1/paltest_getfileattributesw_test1")
{
int i;
BOOL bFailed = FALSE;
WCHAR *WStr;
/* Tests on directory */
- gfaTestsDir[0].name = NormalDirectoryName;
- gfaTestsDir[0].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
- gfaTestsDir[0].isFile = TYPE_DIR;
+ gfaTestsDir_GetFileAttributesW_test1[0].name = NormalDirectoryName;
+ gfaTestsDir_GetFileAttributesW_test1[0].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
+ gfaTestsDir_GetFileAttributesW_test1[0].isFile = TYPE_DIR;
- gfaTestsDir[1].name = ReadOnlyDirectoryName;
- gfaTestsDir[1].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
+ gfaTestsDir_GetFileAttributesW_test1[1].name = ReadOnlyDirectoryName;
+ gfaTestsDir_GetFileAttributesW_test1[1].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
FILE_ATTRIBUTE_READONLY;
- gfaTestsDir[1].isFile = TYPE_DIR;
+ gfaTestsDir_GetFileAttributesW_test1[1].isFile = TYPE_DIR;
- gfaTestsDir[2].name = ReadWriteDirectoryName;
- gfaTestsDir[2].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
- gfaTestsDir[2].isFile = TYPE_DIR;
+ gfaTestsDir_GetFileAttributesW_test1[2].name = ReadWriteDirectoryName;
+ gfaTestsDir_GetFileAttributesW_test1[2].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY;
+ gfaTestsDir_GetFileAttributesW_test1[2].isFile = TYPE_DIR;
- gfaTestsDir[3].name = HiddenDirectoryName;
- gfaTestsDir[3].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY; //|
+ gfaTestsDir_GetFileAttributesW_test1[3].name = HiddenDirectoryName;
+ gfaTestsDir_GetFileAttributesW_test1[3].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY; //|
//FILE_ATTRIBUTE_HIDDEN;
- gfaTestsDir[3].isFile = TYPE_DIR;
+ gfaTestsDir_GetFileAttributesW_test1[3].isFile = TYPE_DIR;
- gfaTestsDir[4].name = HiddenReadOnlyDirectoryName;
- gfaTestsDir[4].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
+ gfaTestsDir_GetFileAttributesW_test1[4].name = HiddenReadOnlyDirectoryName;
+ gfaTestsDir_GetFileAttributesW_test1[4].expectedAttribs = FILE_ATTRIBUTE_DIRECTORY |
FILE_ATTRIBUTE_READONLY; //|
//FILE_ATTRIBUTE_HIDDEN;
- gfaTestsDir[4].isFile = TYPE_DIR;
+ gfaTestsDir_GetFileAttributesW_test1[4].isFile = TYPE_DIR;
- gfaTestsDir[5].name = NoDirectoryName;
- gfaTestsDir[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
- gfaTestsDir[5].isFile = TYPE_DIR;
+ gfaTestsDir_GetFileAttributesW_test1[5].name = NoDirectoryName;
+ gfaTestsDir_GetFileAttributesW_test1[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
+ gfaTestsDir_GetFileAttributesW_test1[5].isFile = TYPE_DIR;
/* Tests on file */
- gfaTestsFile[0].name = NormalFileName;
- gfaTestsFile[0].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
- gfaTestsFile[0].isFile = TYPE_FILE;
+ gfaTestsFile_GetFileAttributesW_test1[0].name = NormalFileName;
+ gfaTestsFile_GetFileAttributesW_test1[0].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
+ gfaTestsFile_GetFileAttributesW_test1[0].isFile = TYPE_FILE;
- gfaTestsFile[1].name = ReadOnlyFileName;
- gfaTestsFile[1].expectedAttribs = FILE_ATTRIBUTE_READONLY;
- gfaTestsFile[1].isFile = TYPE_FILE;
+ gfaTestsFile_GetFileAttributesW_test1[1].name = ReadOnlyFileName;
+ gfaTestsFile_GetFileAttributesW_test1[1].expectedAttribs = FILE_ATTRIBUTE_READONLY;
+ gfaTestsFile_GetFileAttributesW_test1[1].isFile = TYPE_FILE;
- gfaTestsFile[2].name = ReadWriteFileName;
- gfaTestsFile[2].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
- gfaTestsFile[2].isFile = TYPE_FILE;
+ gfaTestsFile_GetFileAttributesW_test1[2].name = ReadWriteFileName;
+ gfaTestsFile_GetFileAttributesW_test1[2].expectedAttribs = FILE_ATTRIBUTE_NORMAL;
+ gfaTestsFile_GetFileAttributesW_test1[2].isFile = TYPE_FILE;
- gfaTestsFile[3].name = HiddenFileName;
- gfaTestsFile[3].expectedAttribs = FILE_ATTRIBUTE_NORMAL; //FILE_ATTRIBUTE_HIDDEN;
- gfaTestsFile[3].isFile = TYPE_FILE;
+ gfaTestsFile_GetFileAttributesW_test1[3].name = HiddenFileName;
+ gfaTestsFile_GetFileAttributesW_test1[3].expectedAttribs = FILE_ATTRIBUTE_NORMAL; //FILE_ATTRIBUTE_HIDDEN;
+ gfaTestsFile_GetFileAttributesW_test1[3].isFile = TYPE_FILE;
- gfaTestsFile[4].name = HiddenReadOnlyFileName;
- gfaTestsFile[4].expectedAttribs = FILE_ATTRIBUTE_READONLY; //|
+ gfaTestsFile_GetFileAttributesW_test1[4].name = HiddenReadOnlyFileName;
+ gfaTestsFile_GetFileAttributesW_test1[4].expectedAttribs = FILE_ATTRIBUTE_READONLY; //|
//FILE_ATTRIBUTE_HIDDEN;
- gfaTestsFile[4].isFile = TYPE_FILE;
+ gfaTestsFile_GetFileAttributesW_test1[4].isFile = TYPE_FILE;
- gfaTestsFile[5].name = NotReallyAFileName;
- gfaTestsFile[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
- gfaTestsFile[5].isFile = TYPE_FILE;
+ gfaTestsFile_GetFileAttributesW_test1[5].name = NotReallyAFileName;
+ gfaTestsFile_GetFileAttributesW_test1[5].expectedAttribs = INVALID_FILE_ATTRIBUTES;
+ gfaTestsFile_GetFileAttributesW_test1[5].isFile = TYPE_FILE;
/* Initialize PAL environment */
if (0 != PAL_Initialize(argc,argv))
return FAIL;
}
- if(!CleanUpFiles())
+ if(!CleanUpFiles_GetFileAttributesW_test1())
{
Fail("GetFileAttributesW: Pre-Clean Up Files Failed\n");
}
- if(0 == SetUpFiles())
+ if(0 == SetUpFiles_GetFileAttributesW_test1())
{
Fail("GetFileAttributesW: SetUp Files Failed\n");
}
- if(!CleanUpDirs())
+ if(!CleanUpDirs_GetFileAttributesW_test1())
{
Fail("GetFileAttributesW: Pre-Clean Up Directories Failed\n");
}
- if(!SetUpDirs())
+ if(!SetUpDirs_GetFileAttributesW_test1())
{
Fail("GetFileAttributesW: SetUp Directories Failed\n");
}
* call GetFileAttributesW on the name and
* make sure the return value is the one expected
*/
- for( i = 0; i < numFileTests; i++ )
+ for( i = 0; i < numFileTests_GetFileAttributesW_test1; i++ )
{
- WStr = convert(gfaTestsFile[i].name);
+ WStr = convert(gfaTestsFile_GetFileAttributesW_test1[i].name);
result = GetFileAttributesW(WStr);
- if( result != gfaTestsFile[i].expectedAttribs )
+ if( result != gfaTestsFile_GetFileAttributesW_test1[i].expectedAttribs )
{
bFailed = TRUE;
Trace("ERROR: GetFileAttributesW Test#%u on %s "
"returned %u instead of %u. \n",
i,
- gfaTestsFile[i].name,
+ gfaTestsFile_GetFileAttributesW_test1[i].name,
result,
- gfaTestsFile[i].expectedAttribs);
+ gfaTestsFile_GetFileAttributesW_test1[i].expectedAttribs);
}
free(WStr);
}
- for( i = 0; i < numDirTests; i++ )
+ for( i = 0; i < numDirTests_GetFileAttributesW_test1; i++ )
{
- WStr = convert(gfaTestsDir[i].name);
+ WStr = convert(gfaTestsDir_GetFileAttributesW_test1[i].name);
result = GetFileAttributesW(WStr);
- if( result != gfaTestsDir[i].expectedAttribs )
+ if( result != gfaTestsDir_GetFileAttributesW_test1[i].expectedAttribs )
{
bFailed = TRUE;
Trace("ERROR: GetFileAttributesW on Directories Test#%u on %s "
"returned %u instead of %u. \n",
i,
- gfaTestsDir[i].name,
+ gfaTestsDir_GetFileAttributesW_test1[i].name,
result,
- gfaTestsDir[i].expectedAttribs);
+ gfaTestsDir_GetFileAttributesW_test1[i].expectedAttribs);
}
free(WStr);
}
- if(!CleanUpFiles())
+ if(!CleanUpFiles_GetFileAttributesW_test1())
{
Fail("GetFileAttributesW: Post-Clean Up Files Failed\n");
}
- if(!CleanUpDirs())
+ if(!CleanUpDirs_GetFileAttributesW_test1())
{
Fail("GetFileAttributesW: Post-Clean Up Directories Failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-
-Section = file_io
-
-Function = GetFileAttributesW
-
-Name = Positive Test for GetFileAttributesW
-
-TYPE = DEFAULT
-
-EXE1 = getfileattributesw
-
-Description
-
-= Test the GetFileAttributesW function
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetFileSize.cpp
-)
-
-add_executable(paltest_getfilesize_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfilesize_test1 coreclrpal)
-
-target_link_libraries(paltest_getfilesize_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-void CleanUp(HANDLE hFile)
+
+void CleanUp_GetFileSize_test1(HANDLE hFile)
{
if (CloseHandle(hFile) != TRUE)
{
}
}
-void CheckFileSize(HANDLE hFile, DWORD dwOffset, DWORD dwHighOrder)
+void CheckFileSize_GetFileSize_test1(HANDLE hFile, DWORD dwOffset, DWORD dwHighOrder)
{
DWORD dwRc = 0;
DWORD dwReturnedHighOrder = 0;
{
Trace("GetFileSize: ERROR -> Call to SetFilePointer failed with %ld.\n",
GetLastError());
- CleanUp(hFile);
+ CleanUp_GetFileSize_test1(hFile);
Fail("");
}
else
{
Trace("GetFileSize: ERROR -> Call to SetEndOfFile failed with %ld.\n",
GetLastError());
- CleanUp(hFile);
+ CleanUp_GetFileSize_test1(hFile);
Fail("");
}
dwReturnedOffset = GetFileSize(hFile, &dwReturnedHighOrder);
if ((dwReturnedOffset != dwOffset) ||
(dwReturnedHighOrder != dwHighOrder))
{
- CleanUp(hFile);
+ CleanUp_GetFileSize_test1(hFile);
Fail("GetFileSize: ERROR -> File sizes do not match up.\n");
}
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetFileSize_test1_paltest_getfilesize_test1, "file_io/GetFileSize/test1/paltest_getfilesize_test1")
{
HANDLE hFile = NULL;
DWORD dwRc = 0;
}
/* give the file a size */
- CheckFileSize(hFile, 256, 0);
+ CheckFileSize_GetFileSize_test1(hFile, 256, 0);
/* make the file large using the high order option */
- CheckFileSize(hFile, 256, 1);
+ CheckFileSize_GetFileSize_test1(hFile, 256, 1);
/* set the file size to zero */
- CheckFileSize(hFile, 0, 0);
+ CheckFileSize_GetFileSize_test1(hFile, 0, 0);
/* test if file size changes by writing to it. */
/* get file size */
{
Trace("GetFileSize: ERROR -> Call to WriteFile failed with %ld.\n",
GetLastError());
- CleanUp(hFile);
+ CleanUp_GetFileSize_test1(hFile);
Fail("");
}
{
Trace("GetFileSize: ERROR -> Call to FlushFileBuffers failed with %ld.\n",
GetLastError());
- CleanUp(hFile);
+ CleanUp_GetFileSize_test1(hFile);
Fail("");
}
dwRc2 = GetFileSize(hFile, NULL);
if((dwRc2-dwRc) !=strlen(data))
{
- CleanUp(hFile);
+ CleanUp_GetFileSize_test1(hFile);
Fail("GetFileSize: ERROR -> File size did not increase properly after.\n"
"writing %d chars\n", strlen(data));
}
- CleanUp(hFile);
+ CleanUp_GetFileSize_test1(hFile);
PAL_Terminate();
return PASS;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFileSize
-Name = Positive Test for GetFileSize (test 1)
-Type = DEFAULT
-EXE1 = getfilesize
-Description
-= Test GetFileSize on a NULL handle and valid file handles
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetFileSizeEx.cpp
-)
-
-add_executable(paltest_getfilesizeex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfilesizeex_test1 coreclrpal)
-
-target_link_libraries(paltest_getfilesizeex_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-void CleanUp(HANDLE hFile)
+
+void CleanUp_GetFileSizeEx_test1(HANDLE hFile)
{
if (CloseHandle(hFile) != TRUE)
{
}
}
-void CheckFileSize(HANDLE hFile, DWORD dwOffset, DWORD dwHighOrder)
+void CheckFileSize_GetFileSizeEx_test1(HANDLE hFile, DWORD dwOffset, DWORD dwHighOrder)
{
DWORD dwRc = 0;
DWORD dwError = 0;
{
Trace("GetFileSizeEx: ERROR -> Call to SetFilePointer failed with %ld.\n",
GetLastError());
- CleanUp(hFile);
+ CleanUp_GetFileSizeEx_test1(hFile);
Fail("");
}
else
if (!SetEndOfFile(hFile))
{
dwError = GetLastError();
- CleanUp(hFile);
+ CleanUp_GetFileSizeEx_test1(hFile);
if (dwError == 112)
{
Fail("GetFileSizeEx: ERROR -> SetEndOfFile failed due to lack of "
if ((qwFileSize.u.LowPart != dwOffset) ||
(qwFileSize.u.HighPart != dwHighOrder))
{
- CleanUp(hFile);
+ CleanUp_GetFileSizeEx_test1(hFile);
Fail("GetFileSizeEx: ERROR -> File sizes do not match up.\n");
}
}
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetFileSizeEx_test1_paltest_getfilesizeex_test1, "file_io/GetFileSizeEx/test1/paltest_getfilesizeex_test1")
{
HANDLE hFile = NULL;
BOOL bRc = FALSE;
}
/* give the file a size */
- CheckFileSize(hFile, 256, 0);
+ CheckFileSize_GetFileSizeEx_test1(hFile, 256, 0);
/* make the file large using the high order option */
- CheckFileSize(hFile, 256, 1);
+ CheckFileSize_GetFileSizeEx_test1(hFile, 256, 1);
/* set the file size to zero */
- CheckFileSize(hFile, 0, 0);
+ CheckFileSize_GetFileSizeEx_test1(hFile, 0, 0);
/* test if file size changes by writing to it. */
/* get file size */
{
Trace("GetFileSizeEx: ERROR -> Call to WriteFile failed with %ld.\n",
GetLastError());
- CleanUp(hFile);
+ CleanUp_GetFileSizeEx_test1(hFile);
Fail("");
}
{
Trace("GetFileSizeEx: ERROR -> Call to FlushFileBuffers failed with %ld.\n",
GetLastError());
- CleanUp(hFile);
+ CleanUp_GetFileSizeEx_test1(hFile);
Fail("");
}
GetFileSizeEx(hFile, &qwFileSize2);
if((qwFileSize2.QuadPart-qwFileSize.QuadPart) !=strlen(data))
{
- CleanUp(hFile);
+ CleanUp_GetFileSizeEx_test1(hFile);
Fail("GetFileSizeEx: ERROR -> File size did not increase properly after.\n"
"writing %d chars\n", strlen(data));
}
- CleanUp(hFile);
+ CleanUp_GetFileSizeEx_test1(hFile);
PAL_Terminate();
return PASS;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFileSizeEx
-Name = Positive Test for GetFileSizeEx (test 1)
-Type = DEFAULT
-EXE1 = getfilesizeex
-Description
-= Test GetFileSizeEx on a NULL handle and valid file handles
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- GetFullPathNameA.cpp
-)
-
-add_executable(paltest_getfullpathnamea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamea_test1 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szFileName = "testing.tmp";
-
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetFullPathNameA_test1_paltest_getfullpathnamea_test1, "file_io/GetFullPathNameA/test1/paltest_getfullpathnamea_test1")
{
+ const char* szFileName = "testing.tmp";
+
DWORD dwRc = 0;
char szReturnedPath[_MAX_DIR+1];
char szShortBuff[2];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameA
-Name = Test for GetFullPathNameA (test 1)
-Type = DEFAULT
-EXE1 = getfullpathnamea
-Description
-= Get the full path for a file name and verify the results.
-= Also, attempt to call GetFullPathNameA with a buffer that is
-= too small for the returned path and verify the results.
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_getfullpathnamea_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamea_test2 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamea_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szDotDot = "..\\";
-const char* szFileName = "testing.tmp";
-
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetFullPathNameA_test2_paltest_getfullpathnamea_test2, "file_io/GetFullPathNameA/test2/paltest_getfullpathnamea_test2")
{
+ const char* szDotDot = "..\\";
+ const char* szFileName = "testing.tmp";
+
DWORD dwRc = 0;
char szReturnedPath[_MAX_DIR+1];
char szFullFileName[_MAX_DIR+1];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameA
-Name = Test for GetFullPathNameA
-Type = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the GetFullPathNameA API.
-= GetFullPathA will be passed a directory that contains '..'.
-= To add to this test, we will also call SetCurrentDirectory to
-= ensure this is handled properly.
-= The test will create a file with in the parent directory
-= to verify that the returned directory is valid.
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_getfullpathnamea_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamea_test3 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamea_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
+
+PALTEST(file_io_GetFullPathNameA_test3_paltest_getfullpathnamea_test3, "file_io/GetFullPathNameA/test3/paltest_getfullpathnamea_test3")
+{
#ifdef WIN32
const char* szSeperator = "\\";
#else
const char* szSeperator = "//";
#endif
-const char* szDotDot = "..\\";
-const char* szFileName = "testing.tmp";
+ const char* szDotDot = "..\\";
+ const char* szFileName = "testing.tmp";
-int __cdecl main(int argc, char *argv[])
-{
DWORD dwRc = 0;
char szReturnedPath[_MAX_DIR+1];
char szFullFileName[_MAX_DIR+1];
free (szCreatedDirW);
/* Terminate the PAL.*/
- PAL_Terminate();
+ PAL_TerminateEx(bRetVal);
return bRetVal;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameA
-Name = Test for GetFullPathNameA
-Type = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the GetFullPathNameA API.
-= GetFullPathA will be passed a directory that contains '..'.
-= Example: test_directory\level1\..\testing.tmp.
-= To add to this test, we will also call SetCurrentDirectory to
-= ensure this is handled properly.
-= The test will create a file with in the parent directory
-= to verify that the returned directory is valid.
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_getfullpathnamea_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamea_test4 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamea_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
+
+PALTEST(file_io_GetFullPathNameA_test4_paltest_getfullpathnamea_test4, "file_io/GetFullPathNameA/test4/paltest_getfullpathnamea_test4")
+{
#ifdef WIN32
const char* szSeperator = "\\";
#else
const char* szSeperator = "//";
#endif
-const char* szDotDot = "..";
-const char* szFileName = "testing.tmp";
+ const char* szDotDot = "..";
+ const char* szFileName = "testing.tmp";
-int __cdecl main(int argc, char *argv[])
-{
DWORD dwRc = 0;
char szReturnedPath[_MAX_DIR+1];
char szFullFileName[_MAX_DIR+1];
free (szCreatedDirW);
/* Terminate the PAL.*/
- PAL_Terminate();
+ PAL_TerminateEx(bRetVal);
return bRetVal;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameA
-Name = Test for GetFullPathNameA
-Type = DEFAULT
-EXE1 = test4
-Description
-= Tests the PAL implementation of the GetFullPathNameA API.
-= GetFullPathA will be passed a directory that begins with '..'.
-= Example: ..\test_directory\level1\testing.tmp.
-= To add to this test, we will also call SetCurrentDirectory to
-= ensure this is handled properly.
-= The test will create a file with in the parent directory
-= to verify that the returned directory is valid.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- GetFullPathNameW.cpp
-)
-
-add_executable(paltest_getfullpathnamew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamew_test1 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szFileName = "testing.tmp";
-
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetFullPathNameW_test1_paltest_getfullpathnamew_test1, "file_io/GetFullPathNameW/test1/paltest_getfullpathnamew_test1")
{
+ const char* szFileName = "testing.tmp";
+
DWORD dwRc = 0;
WCHAR szwReturnedPath[_MAX_DIR+1];
WCHAR szwShortBuff[2];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameW
-Name = Test for GetFullPathNameW (test 1)
-Type = DEFAULT
-EXE1 = getfullpathnamew
-Description
-= Get the full path for a file name and verify the results.
-= Also, attempt to call GetFullPathNameW with a buffer that is
-= too small for the returned path and verify the results.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_getfullpathnamew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamew_test2 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamew_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-WCHAR szwDotDot[] = {'.','.','\\','\0'};
-WCHAR szwFileName[] = {'t','e','s','t','i','n','g','.','t','m','p','\0'};
-
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetFullPathNameW_test2_paltest_getfullpathnamew_test2, "file_io/GetFullPathNameW/test2/paltest_getfullpathnamew_test2")
{
+ WCHAR szwDotDot[] = {'.','.','\\','\0'};
+ WCHAR szwFileName[] = {'t','e','s','t','i','n','g','.','t','m','p','\0'};
+
DWORD dwRc = 0;
WCHAR szwReturnedPath[_MAX_DIR+1];
WCHAR szwFullFileName[_MAX_DIR+1];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameW
-Name = Test for GetFullPathNameW (test 2)
-Type = DEFAULT
-EXE1 = test2
-Description
-= Get the full path for a file name and verify the results.
-= This test will use a relative path, containing '..\'. To
-= add to this test, we will also call SetCurrentDirectory to
-= ensure this is handled properly.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_getfullpathnamew_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamew_test3 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamew_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
+PALTEST(file_io_GetFullPathNameW_test3_paltest_getfullpathnamew_test3, "file_io/GetFullPathNameW/test3/paltest_getfullpathnamew_test3")
+{
#ifdef WIN32
-const WCHAR szSeperator[] = {'\\','\\','\0'};
+ const WCHAR szSeperator[] = {'\\','\\','\0'};
#else
-const WCHAR szSeperator[] = {'/','/','\0'};
+ const WCHAR szSeperator[] = {'/','/','\0'};
#endif
-const WCHAR szDotDot[] = {'.','.','\0'};
-const WCHAR szFileName[] = {'t','e','s','t','i','n','g','.','t','m','p','\0'};
+ const WCHAR szDotDot[] = {'.','.','\0'};
+ const WCHAR szFileName[] = {'t','e','s','t','i','n','g','.','t','m','p','\0'};
-int __cdecl main(int argc, char *argv[])
-{
DWORD dwRc = 0;
WCHAR szReturnedPath[_MAX_DIR+1];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameW
-Name = Test for GetFullPathNameW
-Type = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the GetFullPathNameW API.
-= GetFullPathW will be passed a directory that contains '..'.
-= Example: test_directory\level1\..\testing.tmp.
-= To add to this test, we will also call SetCurrentDirectory to
-= ensure this is handled properly.
-= The test will create a file with in the parent directory
-= to verify that the returned directory is valid.
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_getfullpathnamew_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_getfullpathnamew_test4 coreclrpal)
-
-target_link_libraries(paltest_getfullpathnamew_test4
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
+PALTEST(file_io_GetFullPathNameW_test4_paltest_getfullpathnamew_test4, "file_io/GetFullPathNameW/test4/paltest_getfullpathnamew_test4")
+{
#ifdef WIN32
const WCHAR szSeperator[] = {'\\','\\','\0'};
#else
const WCHAR szSeperator[] = {'/','/','\0'};
#endif
-const WCHAR szDotDot[] = {'.','.','\0'};
-const WCHAR szFileName[] = {'t','e','s','t','i','n','g','.','t','m','p','\0'};
+ const WCHAR szDotDot[] = {'.','.','\0'};
+ const WCHAR szFileName[] = {'t','e','s','t','i','n','g','.','t','m','p','\0'};
-int __cdecl main(int argc, char *argv[])
-{
DWORD dwRc = 0;
WCHAR szReturnedPath[_MAX_DIR+1];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetFullPathNameA
-Name = Test for GetFullPathNameA
-Type = DEFAULT
-EXE1 = test4
-Description
-= Tests the PAL implementation of the GetFullPathNameA API.
-= GetFullPathA will be passed a directory that begins with '..'.
-= Example: ..\test_directory\level1\testing.tmp.
-= To add to this test, we will also call SetCurrentDirectory to
-= ensure this is handled properly.
-= The test will create a file with in the parent directory
-= to verify that the returned directory is valid.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- GetStdHandle.cpp
-)
-
-add_executable(paltest_getstdhandle_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getstdhandle_test1 coreclrpal)
-
-target_link_libraries(paltest_getstdhandle_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetStdHandle_test1_paltest_getstdhandle_test1, "file_io/GetStdHandle/test1/paltest_getstdhandle_test1")
{
HANDLE hFile = NULL;
DWORD dwBytesWritten = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetStdHandle
-Name = Positive Test for GetStdHandle (test 1)
-Type = DEFAULT
-EXE1 = getstdhandle
-Description
-= Test GetStdHandle on a valid/invalid std handles
-
+++ /dev/null
-set(SOURCES
- GetStdHandle.cpp
-)
-
-add_executable(paltest_getstdhandle_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getstdhandle_test2 coreclrpal)
-
-target_link_libraries(paltest_getstdhandle_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetStdHandle_test2_paltest_getstdhandle_test2, "file_io/GetStdHandle/test2/paltest_getstdhandle_test2")
{
HANDLE hFile = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetStdHandle
-Name = Positive Test for GetStdHandle (test 2)
-Type = DEFAULT
-EXE1 = getstdhandle
-Description
-= Smoke Test GetStdHandle on a valid/invalid std handles
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getsystemtime_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getsystemtime_test1 coreclrpal)
-
-target_link_libraries(paltest_getsystemtime_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetSystemTime_test1_paltest_getsystemtime_test1, "file_io/GetSystemTime/test1/paltest_getsystemtime_test1")
{
SYSTEMTIME TheTime;
SYSTEMTIME firstTime;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetSystemTime
-Name = Positive test of GetSystemTime
-Type = DEFAULT
-EXE1 = test
-Description
-= Tests the PAL implementation of the GetSystemTime API
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetSystemTimeAsFileTime.cpp
-)
-
-add_executable(paltest_getsystemtimeasfiletime_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getsystemtimeasfiletime_test1 coreclrpal)
-
-target_link_libraries(paltest_getsystemtimeasfiletime_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(file_io_GetSystemTimeAsFileTime_test1_paltest_getsystemtimeasfiletime_test1, "file_io/GetSystemTimeAsFileTime/test1/paltest_getsystemtimeasfiletime_test1")
{
FILETIME TheFirstTime, TheSecondTime;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetSystemTimeAsFileTime
-Name = Positive Test for GetSystemTimeAsFileTime
-TYPE = DEFAULT
-EXE1 = getsystemtimeasfiletime
-Description
-= Test the GetSystemTimeAsFileTime function.
-= Take two times, three seconds apart, and ensure that the time is
-= increasing, and that it has increased at least 3 seconds.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- GetTempFileNameA.cpp
-)
-
-add_executable(paltest_gettempfilenamea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettempfilenamea_test1 coreclrpal)
-
-target_link_libraries(paltest_gettempfilenamea_test1
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetTempFileNameA_test1_paltest_gettempfilenamea_test1, "file_io/GetTempFileNameA/test1/paltest_gettempfilenamea_test1")
{
UINT uiError = 0;
const UINT uUnique = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempFileNameA
-Name = Test for GetTempFileNameA (test 1)
-Type = DEFAULT
-EXE1 = gettempfilenamea
-Description
-= Tests the PAL implimentation of GetTempFileNameA by testing
-= various combinations of path and prefix names.
+++ /dev/null
-set(SOURCES
- GetTempFileNameA.cpp
-)
-
-add_executable(paltest_gettempfilenamea_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettempfilenamea_test2 coreclrpal)
-
-target_link_libraries(paltest_gettempfilenamea_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetTempFileNameA_test2_paltest_gettempfilenamea_test2, "file_io/GetTempFileNameA/test2/paltest_gettempfilenamea_test2")
{
UINT uiError = 0;
DWORD dwError = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempFileNameA
-Name = Test for GetTempFileNameA (test 2)
-Type = DEFAULT
-EXE1 = gettempfilenamea
-Description
-= Test the number of files that can be created. Since
-= GetTempFileNameA only handles 8.3 file names, the test
-= attempts to create more than the maximum temp files possible
-= with a 3 character prefix. Since this test takes so long, it
-= is not to be included in the standard test harness.
-= This test will also need more than 4.07 GB free disk space.
+++ /dev/null
-set(SOURCES
- gettempfilenamea.cpp
-)
-
-add_executable(paltest_gettempfilenamea_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettempfilenamea_test3 coreclrpal)
-
-target_link_libraries(paltest_gettempfilenamea_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetTempFileNameA_test3_paltest_gettempfilenamea_test3, "file_io/GetTempFileNameA/test3/paltest_gettempfilenamea_test3")
{
const UINT uUnique = 0;
UINT uiError;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempFileNameA
-Name = Test for GetTempFileNameA (test 3)
-Type = DEFAULT
-EXE1 = gettempfilenamea
-Description
-= Tests the PAL implementation of the GetTempFileNameA function.
-= Checks the file attributes and ensures that getting a file name,
-= deleting the file and getting another doesn't produce the same
-= as the just deleted file. Also checks the file size is 0.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- GetTempFileNameW.cpp
-)
-
-add_executable(paltest_gettempfilenamew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettempfilenamew_test1 coreclrpal)
-
-target_link_libraries(paltest_gettempfilenamew_test1
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetTempFileNameW_test1_paltest_gettempfilenamew_test1, "file_io/GetTempFileNameW/test1/paltest_gettempfilenamew_test1")
{
UINT uiError = 0;
const UINT uUnique = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempFileNameW
-Name = Test for GetTempFileNameW (test 1)
-Type = DEFAULT
-EXE1 = gettempfilenamew
-Description
-= Test all the different options of GetTempFileNameW
-
+++ /dev/null
-set(SOURCES
- GetTempFileNameW.cpp
-)
-
-add_executable(paltest_gettempfilenamew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettempfilenamew_test2 coreclrpal)
-
-target_link_libraries(paltest_gettempfilenamew_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetTempFileNameW_test2_paltest_gettempfilenamew_test2, "file_io/GetTempFileNameW/test2/paltest_gettempfilenamew_test2")
{
UINT uiError = 0;
DWORD dwError = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempFileNameW
-Name = Test for GetTempFileNameW (test 2)
-Type = DEFAULT
-EXE1 = gettempfilenamew
-Description
-= This test attempts to create over 65000 files and will
-= have to be run manually because it will take longer than
-= the maximum 60 seconds allowed per test
-
+++ /dev/null
-set(SOURCES
- gettempfilenamew.cpp
-)
-
-add_executable(paltest_gettempfilenamew_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettempfilenamew_test3 coreclrpal)
-
-target_link_libraries(paltest_gettempfilenamew_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetTempFileNameW_test3_paltest_gettempfilenamew_test3, "file_io/GetTempFileNameW/test3/paltest_gettempfilenamew_test3")
{
const UINT uUnique = 0;
UINT uiError;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempFileNameW
-Name = Test for GetTempFileNameW (test 3)
-Type = DEFAULT
-EXE1 = gettempfilenamew
-Description
-= Tests the PAL implementation of the GetTempFileNameW function.
-= Checks the file attributes and ensures that getting a file name,
-= deleting the file and getting another doesn't produce the same
-= as the just deleted file. Also checks the file size is 0.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- GetTempPathW.cpp
-)
-
-add_executable(paltest_gettemppathw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettemppathw_test1 coreclrpal)
-
-target_link_libraries(paltest_gettemppathw_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_GetTempPathW_test1_paltest_gettemppathw_test1, "file_io/GetTempPathW/test1/paltest_gettemppathw_test1")
{
if (0 != PAL_Initialize(argc, argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempPathW
-Name = Test for GetTempPathW (test 1)
-Type = DEFAULT
-EXE1 = gettemppathw
-Description
-= Calls GetTempPathW and verifies by passing the returned
-= value to CreateDirectoryW. If the returned path exists,
-= CreateDirectoryW will fail.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- MoveFileExA.cpp
-)
-
-add_executable(paltest_movefileexa_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_movefileexa_test1 coreclrpal)
-
-target_link_libraries(paltest_movefileexa_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-LPSTR lpSource[4] = {
+LPSTR lpSource_MoveFileExA_test1[4] = {
"src_existing.tmp",
"src_non-existant.tmp",
"src_dir_existing",
"src_dir_non-existant"
};
-LPSTR lpDestination[4]={
+LPSTR lpDestination_MoveFileExA_test1[4]={
"dst_existing.tmp",
"dst_non-existant.tmp",
"dst_dir_existing",
"dst_dir_non-existant"
};
-LPSTR lpFiles[14] ={
+LPSTR lpFiles_MoveFileExA_test1[14] ={
"src_dir_existing\\test01.tmp",
"src_dir_existing\\test02.tmp",
"dst_dir_existing\\test01.tmp",
"dst_dir_non-existant\\test02.tmp"
};
-DWORD dwFlag[2] = {MOVEFILE_COPY_ALLOWED, MOVEFILE_REPLACE_EXISTING};
+DWORD dwFlag_MoveFileExA_test1[2] = {MOVEFILE_COPY_ALLOWED, MOVEFILE_REPLACE_EXISTING};
-int createExisting(void)
+int createExisting_MoveFileExA_test1(void)
{
HANDLE tempFile = NULL;
HANDLE tempFile2 = NULL;
/* create the src_existing file and dst_existing file */
- tempFile = CreateFileA(lpSource[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile = CreateFileA(lpSource_MoveFileExA_test1[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
- tempFile2 = CreateFileA(lpDestination[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile2 = CreateFileA(lpDestination_MoveFileExA_test1[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
CloseHandle(tempFile2);
CloseHandle(tempFile);
if ((tempFile == NULL) || (tempFile2 == NULL))
{
- Trace("ERROR[%ul]: couldn't create %S or %S\n", GetLastError(), lpSource[0],
- lpDestination[0]);
+ Trace("ERROR[%ul]: couldn't create %S or %S\n", GetLastError(), lpSource_MoveFileExA_test1[0],
+ lpDestination_MoveFileExA_test1[0]);
return FAIL;
}
/* create the src_dir_existing and dst_dir_existing directory and files */
- CreateDirectoryA(lpSource[2], NULL);
+ CreateDirectoryA(lpSource_MoveFileExA_test1[2], NULL);
- tempFile = CreateFileA(lpFiles[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile = CreateFileA(lpFiles_MoveFileExA_test1[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
- tempFile2 = CreateFileA(lpFiles[1], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile2 = CreateFileA(lpFiles_MoveFileExA_test1[1], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
CloseHandle(tempFile2);
CloseHandle(tempFile);
return FAIL;
}
- CreateDirectoryA(lpDestination[2], NULL);
- tempFile = CreateFileA(lpFiles[2], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ CreateDirectoryA(lpDestination_MoveFileExA_test1[2], NULL);
+ tempFile = CreateFileA(lpFiles_MoveFileExA_test1[2], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
- tempFile2 = CreateFileA(lpFiles[3], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile2 = CreateFileA(lpFiles_MoveFileExA_test1[3], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
CloseHandle(tempFile2);
CloseHandle(tempFile);
}
-void removeDirectoryHelper(LPSTR dir, int location)
+void removeDirectoryHelper_MoveFileExA_test1(LPSTR dir, int location)
{
DWORD dwAtt = GetFileAttributesA(dir);
}
}
-void removeFileHelper(LPSTR pfile, int location)
+void removeFileHelper_MoveFileExA_test1(LPSTR pfile, int location)
{
FILE *fp;
fp = fopen( pfile, "r");
}
-void removeAll(void)
+void removeAll_MoveFileExA_test1(void)
{
DWORD dwAtt;
/* get rid of destination dirs and files */
- removeFileHelper(lpSource[0], 11);
- removeFileHelper(lpSource[1], 12);
- removeFileHelper(lpFiles[0], 13);
- removeFileHelper(lpFiles[1], 14);
+ removeFileHelper_MoveFileExA_test1(lpSource_MoveFileExA_test1[0], 11);
+ removeFileHelper_MoveFileExA_test1(lpSource_MoveFileExA_test1[1], 12);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[0], 13);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[1], 14);
- removeDirectoryHelper(lpSource[2], 101);
- removeFileHelper(lpFiles[4], 15);
- removeFileHelper(lpFiles[5], 16);
- removeDirectoryHelper(lpSource[3], 102);
+ removeDirectoryHelper_MoveFileExA_test1(lpSource_MoveFileExA_test1[2], 101);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[4], 15);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[5], 16);
+ removeDirectoryHelper_MoveFileExA_test1(lpSource_MoveFileExA_test1[3], 102);
/* get rid of destination dirs and files */
- dwAtt = GetFileAttributesA(lpDestination[0]);
+ dwAtt = GetFileAttributesA(lpDestination_MoveFileExA_test1[0]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[6], 18);
- removeFileHelper(lpFiles[7], 19);
- removeDirectoryHelper(lpDestination[0], 103);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[6], 18);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[7], 19);
+ removeDirectoryHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[0], 103);
}
else
{
- removeFileHelper(lpDestination[0], 17);
+ removeFileHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[0], 17);
}
- dwAtt = GetFileAttributesA(lpDestination[1]);
+ dwAtt = GetFileAttributesA(lpDestination_MoveFileExA_test1[1]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[8], 21);
- removeFileHelper(lpFiles[9], 22);
- removeDirectoryHelper(lpDestination[1], 104);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[8], 21);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[9], 22);
+ removeDirectoryHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[1], 104);
}
else
{
- removeFileHelper(lpDestination[1], 19);
+ removeFileHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[1], 19);
}
- dwAtt = GetFileAttributesA(lpDestination[2]);
+ dwAtt = GetFileAttributesA(lpDestination_MoveFileExA_test1[2]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[10], 24);
- removeFileHelper(lpFiles[11], 25);
- removeDirectoryHelper(lpDestination[2], 105);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[10], 24);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[11], 25);
+ removeDirectoryHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[2], 105);
}
else
{
- removeFileHelper(lpDestination[2], 23);
+ removeFileHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[2], 23);
}
- dwAtt = GetFileAttributesA(lpDestination[3]);
+ dwAtt = GetFileAttributesA(lpDestination_MoveFileExA_test1[3]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[12], 26);
- removeFileHelper(lpFiles[13], 27);
- removeDirectoryHelper(lpDestination[3], 106);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[12], 26);
+ removeFileHelper_MoveFileExA_test1(lpFiles_MoveFileExA_test1[13], 27);
+ removeDirectoryHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[3], 106);
}
else
{
- removeFileHelper(lpDestination[3], 107);
+ removeFileHelper_MoveFileExA_test1(lpDestination_MoveFileExA_test1[3], 107);
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_MoveFileExA_test1_paltest_movefileexa_test1, "file_io/MoveFileExA/test1/paltest_movefileexa_test1")
{
BOOL bRc = TRUE;
char results[40];
/* clean the slate */
- removeAll();
- if (createExisting() != PASS)
+ removeAll_MoveFileExA_test1();
+ if (createExisting_MoveFileExA_test1() != PASS)
{
goto EXIT;
}
- /* lpSource loop */
+ /* lpSource_MoveFileExA_test1 loop */
for (i = 0; i < 4; i++)
{
- /* lpDestination loop */
+ /* lpDestination_MoveFileExA_test1 loop */
for (j = 0; j < 4; j++)
{
- /* dwFlag loop */
+ /* dwFlag_MoveFileExA_test1 loop */
for (k = 0; k < 2; k++)
{
/* move the file to the new location */
- bRc = MoveFileExA(lpSource[i], lpDestination[j], dwFlag[k]);
+ bRc = MoveFileExA(lpSource_MoveFileExA_test1[i], lpDestination_MoveFileExA_test1[j], dwFlag_MoveFileExA_test1[k]);
if (!(
((bRc == TRUE) && (results[nCounter] == '1'))
)
{
Trace("MoveFileExA(%s, %s, %s): Values of i[%d], j[%d], k [%d] and results[%d]=%c LastError[%d]Flag[%d]FAILED\n",
- lpSource[i], lpDestination[j],
+ lpSource_MoveFileExA_test1[i], lpDestination_MoveFileExA_test1[j],
k == 1 ?
"MOVEFILE_REPLACE_EXISTING":"MOVEFILE_COPY_ALLOWED", i, j, k, nCounter, results[nCounter], GetLastError(), bRc);
goto EXIT;
}
/* undo the last move */
- removeAll();
- if (createExisting() != PASS)
+ removeAll_MoveFileExA_test1();
+ if (createExisting_MoveFileExA_test1() != PASS)
{
goto EXIT;
}
res = PASS;
EXIT:
- removeAll();
+ removeAll_MoveFileExA_test1();
PAL_TerminateEx(res);
return res;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = MoveFileExA
-Name = Test for MoveFileExA (test 1)
-Type = DEFAULT
-EXE1 = movefileexa
-Description
-= Creates a number of files/directories and attempts to move them.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- MoveFileExW.cpp
-)
-
-add_executable(paltest_movefileexw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_movefileexw_test1 coreclrpal)
-
-target_link_libraries(paltest_movefileexw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-LPWSTR lpSource[4];
-LPWSTR lpDestination[4];
-LPWSTR lpFiles[14];
+LPWSTR lpSource_MoveFileExW_test1[4];
+LPWSTR lpDestination_MoveFileExW_test1[4];
+LPWSTR lpFiles_MoveFileExW_test1[14];
-DWORD dwFlag[2] = {MOVEFILE_COPY_ALLOWED, MOVEFILE_REPLACE_EXISTING};
+DWORD dwFlag_MoveFileExW_test1[2] = {MOVEFILE_COPY_ALLOWED, MOVEFILE_REPLACE_EXISTING};
-int createExisting(void)
+int createExisting_MoveFileExW_test1(void)
{
HANDLE tempFile = NULL;
HANDLE tempFile2 = NULL;
/* create the src_existing file and dst_existing file */
- tempFile = CreateFileW(lpSource[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile = CreateFileW(lpSource_MoveFileExW_test1[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
- tempFile2 = CreateFileW(lpDestination[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile2 = CreateFileW(lpDestination_MoveFileExW_test1[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
CloseHandle(tempFile2);
CloseHandle(tempFile);
if ((tempFile == NULL) || (tempFile2 == NULL))
{
- Trace("ERROR: couldn't create %S or %S\n", lpSource[0],
- lpDestination[0]);
+ Trace("ERROR: couldn't create %S or %S\n", lpSource_MoveFileExW_test1[0],
+ lpDestination_MoveFileExW_test1[0]);
return FAIL;
}
/* create the src_dir_existing and dst_dir_existing directory and files */
- CreateDirectoryW(lpSource[2], NULL);
+ CreateDirectoryW(lpSource_MoveFileExW_test1[2], NULL);
- tempFile = CreateFileW(lpFiles[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile = CreateFileW(lpFiles_MoveFileExW_test1[0], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
- tempFile2 = CreateFileW(lpFiles[1], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile2 = CreateFileW(lpFiles_MoveFileExW_test1[1], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
CloseHandle(tempFile2);
CloseHandle(tempFile);
return FAIL;
}
- CreateDirectoryW(lpDestination[2], NULL);
- tempFile = CreateFileW(lpFiles[2], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ CreateDirectoryW(lpDestination_MoveFileExW_test1[2], NULL);
+ tempFile = CreateFileW(lpFiles_MoveFileExW_test1[2], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
- tempFile2 = CreateFileW(lpFiles[3], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ tempFile2 = CreateFileW(lpFiles_MoveFileExW_test1[3], GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
CloseHandle(tempFile2);
CloseHandle(tempFile);
return PASS;
}
-void removeDirectoryHelper(LPWSTR dir, int location)
+void removeDirectoryHelper_MoveFileExW_test1(LPWSTR dir, int location)
{
DWORD dwAtt = GetFileAttributesW(dir);
// Trace(" Value of location[%d], and directorye [%S]\n", location, dir);
}
}
-void removeFileHelper(LPWSTR wfile, int location)
+void removeFileHelper_MoveFileExW_test1(LPWSTR wfile, int location)
{
FILE *fp;
char * pfile = convertC(wfile);
free(pfile);
}
-void removeAll(void)
+void removeAll_MoveFileExW_test1(void)
{
DWORD dwAtt;
/* get rid of destination dirs and files */
- removeFileHelper(lpSource[0], 11);
-// lpSource[0] = convert("src_existing.tmp");
+ removeFileHelper_MoveFileExW_test1(lpSource_MoveFileExW_test1[0], 11);
+// lpSource_MoveFileExW_test1[0] = convert("src_existing.tmp");
- removeFileHelper(lpSource[1], 12);
- //lpSource[1] = convert("src_non-existant.tmp");
+ removeFileHelper_MoveFileExW_test1(lpSource_MoveFileExW_test1[1], 12);
+ //lpSource_MoveFileExW_test1[1] = convert("src_non-existant.tmp");
- removeFileHelper(lpFiles[0], 13);
-// lpFiles[0] = convert("src_dir_existing\\test01.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[0], 13);
+// lpFiles_MoveFileExW_test1[0] = convert("src_dir_existing\\test01.tmp");
- removeFileHelper(lpFiles[1], 14);
-// lpFiles[1] = convert("src_dir_existing\\test02.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[1], 14);
+// lpFiles_MoveFileExW_test1[1] = convert("src_dir_existing\\test02.tmp");
- removeDirectoryHelper(lpSource[2], 101);
-// lpSource[2] = convert("src_dir_existing");
+ removeDirectoryHelper_MoveFileExW_test1(lpSource_MoveFileExW_test1[2], 101);
+// lpSource_MoveFileExW_test1[2] = convert("src_dir_existing");
- removeFileHelper(lpFiles[4], 15);
-// lpFiles[4] = convert("src_dir_non-existant\\test01.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[4], 15);
+// lpFiles_MoveFileExW_test1[4] = convert("src_dir_non-existant\\test01.tmp");
- removeFileHelper(lpFiles[5], 16);
-// lpFiles[5] = convert("src_dir_non-existant\\test02.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[5], 16);
+// lpFiles_MoveFileExW_test1[5] = convert("src_dir_non-existant\\test02.tmp");
- removeDirectoryHelper(lpSource[3], 102);
-// lpSource[3] = convert("src_dir_non-existant");
+ removeDirectoryHelper_MoveFileExW_test1(lpSource_MoveFileExW_test1[3], 102);
+// lpSource_MoveFileExW_test1[3] = convert("src_dir_non-existant");
/* get rid of destination dirs and files */
- dwAtt = GetFileAttributesW(lpDestination[0]);
+ dwAtt = GetFileAttributesW(lpDestination_MoveFileExW_test1[0]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[6], 18);
- // lpFiles[6] = convert("dst_existing.tmp\\test01.tmp");
- removeFileHelper(lpFiles[7], 19);
- // lpFiles[7] = convert("dst_existing.tmp\\test02.tmp");
- removeDirectoryHelper(lpDestination[0], 103);
- // lpDestination[0] = convert("dst_existing.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[6], 18);
+ // lpFiles_MoveFileExW_test1[6] = convert("dst_existing.tmp\\test01.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[7], 19);
+ // lpFiles_MoveFileExW_test1[7] = convert("dst_existing.tmp\\test02.tmp");
+ removeDirectoryHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[0], 103);
+ // lpDestination_MoveFileExW_test1[0] = convert("dst_existing.tmp");
}
else
{
- removeFileHelper(lpDestination[0], 17);
- // lpDestination[0] = convert("dst_existing.tmp");
+ removeFileHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[0], 17);
+ // lpDestination_MoveFileExW_test1[0] = convert("dst_existing.tmp");
}
- dwAtt = GetFileAttributesW(lpDestination[1]);
+ dwAtt = GetFileAttributesW(lpDestination_MoveFileExW_test1[1]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[8], 21);
- // lpFiles[8] = convert("dst_non-existant.tmp\\test01.tmp");
- removeFileHelper(lpFiles[9], 22);
- // lpFiles[9] = convert("dst_non-existant.tmp\\test02.tmp");
- removeDirectoryHelper(lpDestination[1], 104);
- // lpDestination[1] = convert("dst_non-existant.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[8], 21);
+ // lpFiles_MoveFileExW_test1[8] = convert("dst_non-existant.tmp\\test01.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[9], 22);
+ // lpFiles_MoveFileExW_test1[9] = convert("dst_non-existant.tmp\\test02.tmp");
+ removeDirectoryHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[1], 104);
+ // lpDestination_MoveFileExW_test1[1] = convert("dst_non-existant.tmp");
}
else
{
- removeFileHelper(lpDestination[1], 19);
- //lpDestination[1] = convert("dst_non-existant.tmp");
+ removeFileHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[1], 19);
+ //lpDestination_MoveFileExW_test1[1] = convert("dst_non-existant.tmp");
}
- dwAtt = GetFileAttributesW(lpDestination[2]);
+ dwAtt = GetFileAttributesW(lpDestination_MoveFileExW_test1[2]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[10], 24);
- // lpFiles[10] = convert("dst_dir_existing\\test01.tmp");
- removeFileHelper(lpFiles[11], 25);
- // lpFiles[11] = convert("dst_dir_existing\\test02.tmp");
- removeDirectoryHelper(lpDestination[2], 105);
- // lpDestination[2] = convert("dst_dir_existing");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[10], 24);
+ // lpFiles_MoveFileExW_test1[10] = convert("dst_dir_existing\\test01.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[11], 25);
+ // lpFiles_MoveFileExW_test1[11] = convert("dst_dir_existing\\test02.tmp");
+ removeDirectoryHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[2], 105);
+ // lpDestination_MoveFileExW_test1[2] = convert("dst_dir_existing");
}
else
{
- removeFileHelper(lpDestination[2], 23);
- // lpDestination[2] = convert("dst_dir_existing");
+ removeFileHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[2], 23);
+ // lpDestination_MoveFileExW_test1[2] = convert("dst_dir_existing");
}
- dwAtt = GetFileAttributesW(lpDestination[3]);
+ dwAtt = GetFileAttributesW(lpDestination_MoveFileExW_test1[3]);
if (( dwAtt != INVALID_FILE_ATTRIBUTES ) && ( dwAtt & FILE_ATTRIBUTE_DIRECTORY) )
{
- removeFileHelper(lpFiles[12], 26);
- // lpFiles[12] = convert("dst_dir_non-existant\\test01.tmp");
- removeFileHelper(lpFiles[13], 27);
- // lpFiles[13] = convert("dst_dir_non-existant\\test02.tmp");
- removeDirectoryHelper(lpDestination[3], 106);
- // lpDestination[3] = convert("dst_dir_non-existant");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[12], 26);
+ // lpFiles_MoveFileExW_test1[12] = convert("dst_dir_non-existant\\test01.tmp");
+ removeFileHelper_MoveFileExW_test1(lpFiles_MoveFileExW_test1[13], 27);
+ // lpFiles_MoveFileExW_test1[13] = convert("dst_dir_non-existant\\test02.tmp");
+ removeDirectoryHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[3], 106);
+ // lpDestination_MoveFileExW_test1[3] = convert("dst_dir_non-existant");
}
else
{
- removeFileHelper(lpDestination[3], 107);
- // lpDestination[3] = convert("dst_dir_non-existant");
+ removeFileHelper_MoveFileExW_test1(lpDestination_MoveFileExW_test1[3], 107);
+ // lpDestination_MoveFileExW_test1[3] = convert("dst_dir_non-existant");
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_MoveFileExW_test1_paltest_movefileexw_test1, "file_io/MoveFileExW/test1/paltest_movefileexw_test1")
{
BOOL bRc = TRUE;
char results[40];
return FAIL;
}
- lpSource[0] = convert("src_existing.tmp");
- lpSource[1] = convert("src_non-existant.tmp");
- lpSource[2] = convert("src_dir_existing");
- lpSource[3] = convert("src_dir_non-existant");
+ lpSource_MoveFileExW_test1[0] = convert("src_existing.tmp");
+ lpSource_MoveFileExW_test1[1] = convert("src_non-existant.tmp");
+ lpSource_MoveFileExW_test1[2] = convert("src_dir_existing");
+ lpSource_MoveFileExW_test1[3] = convert("src_dir_non-existant");
- lpDestination[0] = convert("dst_existing.tmp");
- lpDestination[1] = convert("dst_non-existant.tmp");
- lpDestination[2] = convert("dst_dir_existing");
- lpDestination[3] = convert("dst_dir_non-existant");
+ lpDestination_MoveFileExW_test1[0] = convert("dst_existing.tmp");
+ lpDestination_MoveFileExW_test1[1] = convert("dst_non-existant.tmp");
+ lpDestination_MoveFileExW_test1[2] = convert("dst_dir_existing");
+ lpDestination_MoveFileExW_test1[3] = convert("dst_dir_non-existant");
- lpFiles[0] = convert("src_dir_existing\\test01.tmp");
- lpFiles[1] = convert("src_dir_existing\\test02.tmp");
- lpFiles[2] = convert("dst_dir_existing\\test01.tmp");
- lpFiles[3] = convert("dst_dir_existing\\test02.tmp");
- lpFiles[4] = convert("src_dir_non-existant\\test01.tmp");
- lpFiles[5] = convert("src_dir_non-existant\\test02.tmp");
+ lpFiles_MoveFileExW_test1[0] = convert("src_dir_existing\\test01.tmp");
+ lpFiles_MoveFileExW_test1[1] = convert("src_dir_existing\\test02.tmp");
+ lpFiles_MoveFileExW_test1[2] = convert("dst_dir_existing\\test01.tmp");
+ lpFiles_MoveFileExW_test1[3] = convert("dst_dir_existing\\test02.tmp");
+ lpFiles_MoveFileExW_test1[4] = convert("src_dir_non-existant\\test01.tmp");
+ lpFiles_MoveFileExW_test1[5] = convert("src_dir_non-existant\\test02.tmp");
- lpFiles[6] = convert("dst_existing.tmp\\test01.tmp");
- lpFiles[7] = convert("dst_existing.tmp\\test02.tmp");
+ lpFiles_MoveFileExW_test1[6] = convert("dst_existing.tmp\\test01.tmp");
+ lpFiles_MoveFileExW_test1[7] = convert("dst_existing.tmp\\test02.tmp");
- lpFiles[8] = convert("dst_non-existant.tmp\\test01.tmp");
- lpFiles[9] = convert("dst_non-existant.tmp\\test02.tmp");
+ lpFiles_MoveFileExW_test1[8] = convert("dst_non-existant.tmp\\test01.tmp");
+ lpFiles_MoveFileExW_test1[9] = convert("dst_non-existant.tmp\\test02.tmp");
- lpFiles[10] = convert("dst_dir_existing\\test01.tmp");
- lpFiles[11] = convert("dst_dir_existing\\test02.tmp");
+ lpFiles_MoveFileExW_test1[10] = convert("dst_dir_existing\\test01.tmp");
+ lpFiles_MoveFileExW_test1[11] = convert("dst_dir_existing\\test02.tmp");
- lpFiles[12] = convert("dst_dir_non-existant\\test01.tmp");
- lpFiles[13] = convert("dst_dir_non-existant\\test02.tmp");
+ lpFiles_MoveFileExW_test1[12] = convert("dst_dir_non-existant\\test01.tmp");
+ lpFiles_MoveFileExW_test1[13] = convert("dst_dir_non-existant\\test02.tmp");
/* read in the expected results to compare with actual results */
memset (results, 0, 34);
/* clean the slate */
- removeAll();
- if (createExisting() != PASS)
+ removeAll_MoveFileExW_test1();
+ if (createExisting_MoveFileExW_test1() != PASS)
{
goto EXIT;
}
- /* lpSource loop */
+ /* lpSource_MoveFileExW_test1 loop */
for (i = 0; i < 4; i++)
{
- /* lpDestination loop */
+ /* lpDestination_MoveFileExW_test1 loop */
for (j = 0; j < 4; j++)
{
- /* dwFlag loop */
+ /* dwFlag_MoveFileExW_test1 loop */
for (k = 0; k < 2; k++)
{
//exit(1);
//}
/* move the file to the new location */
- bRc = MoveFileExW(lpSource[i], lpDestination[j], dwFlag[k]);
+ bRc = MoveFileExW(lpSource_MoveFileExW_test1[i], lpDestination_MoveFileExW_test1[j], dwFlag_MoveFileExW_test1[k]);
if (!(
((bRc == TRUE) && (results[nCounter] == '1'))
)
{
Trace("MoveFileExW(%S, %S, %s): Values of i[%d], j[%d], k [%d] and results[%d]=%c LastError[%d]Flag[%d]FAILED\n",
- lpSource[i], lpDestination[j],
+ lpSource_MoveFileExW_test1[i], lpDestination_MoveFileExW_test1[j],
k == 1 ?
"MOVEFILE_REPLACE_EXISTING":"MOVEFILE_COPY_ALLOWED", i, j, k, nCounter, results[nCounter], GetLastError(), bRc);
goto EXIT;
}
//Trace("MoveFileExW(%S, %S, %s): Values of i[%d], j[%d], k [%d] and results[%d]=%c \n",
- // lpSource[i], lpDestination[j],
+ // lpSource_MoveFileExW_test1[i], lpDestination_MoveFileExW_test1[j],
// k == 1 ?
// "MOVEFILE_REPLACE_EXISTING":"MOVEFILE_COPY_ALLOWED", i, j, k, nCounter, results[nCounter]);
/* undo the last move */
- removeAll();
- if (createExisting() != PASS)
+ removeAll_MoveFileExW_test1();
+ if (createExisting_MoveFileExW_test1() != PASS)
{
goto EXIT;
}
res = PASS;
EXIT:
- removeAll();
+ removeAll_MoveFileExW_test1();
for (i=0; i<4; i++)
{
- free(lpSource[i]);
- free(lpDestination[i]);
+ free(lpSource_MoveFileExW_test1[i]);
+ free(lpDestination_MoveFileExW_test1[i]);
}
for (i=0; i<14; i++)
{
- free(lpFiles[i]);
+ free(lpFiles_MoveFileExW_test1[i]);
}
PAL_TerminateEx(res);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = MoveFileExW
-Name = Test for MoveFileExW (test 1)
-Type = DEFAULT
-EXE1 = movefileexw
-Description
-= Creates a number of files/directories and attempts to move them.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- ReadFile.cpp
-)
-
-add_executable(paltest_readfile_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_readfile_test1 coreclrpal)
-
-target_link_libraries(paltest_readfile_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_ReadFile_test1_paltest_readfile_test1, "file_io/ReadFile/test1/paltest_readfile_test1")
{
HANDLE hFile = NULL;
DWORD dwByteCount = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = ReadFile
-Name = Positive Test for ReadFile
-Type = DEFAULT
-EXE1 = readfile
-Description
-=Attempt to read from a NULL handle and a file without read permissions
-
+++ /dev/null
-set(SOURCES
- ReadFile.cpp
-)
-
-add_executable(paltest_readfile_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_readfile_test2 coreclrpal)
-
-target_link_libraries(paltest_readfile_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szStringTest = "The quick fox jumped over the lazy dog's back.\0";
-const char* szEmptyString = "";
-const char* szReadableFile = "Readable.txt";
-const char* szResultsFile = "Results.txt";
+#define szStringTest "The quick fox jumped over the lazy dog's back.\0"
+#define szEmptyString ""
+#define szReadableFile "Readable.txt"
+#define szResultsFile "Results.txt"
//Previously number of tests was 6, now 4 refer VSW 312690
#define NOOFTESTS 4
const int PAGESIZE = 4096;
+char *readBuffer_ReadFile_test2;
-char *readBuffer;
-
-BOOL validateResults(const char* szString, // string read
+BOOL validateResults_ReadFile_test2(const char* szString, // string read
DWORD dwByteCount, // amount requested
DWORD dwBytesRead) // amount read
{
return TRUE;
}
-BOOL readTest(DWORD dwByteCount, char cResult)
+BOOL readTest_ReadFile_test2(DWORD dwByteCount, char cResult)
{
HANDLE hFile = NULL;
DWORD dwBytesRead;
return FALSE;
}
- memset(readBuffer, 0, PAGESIZE);
+ memset(readBuffer_ReadFile_test2, 0, PAGESIZE);
- bRc = ReadFile(hFile, readBuffer, dwByteCount, &dwBytesRead, NULL);
+ bRc = ReadFile(hFile, readBuffer_ReadFile_test2, dwByteCount, &dwBytesRead, NULL);
if (bRc == FALSE)
{
if (cResult == '1')
{
Trace("\nbRc = %d\n", bRc);
- Trace("readBuffer = [%s] dwByteCount = %d dwBytesRead = %d\n", readBuffer, dwByteCount, dwBytesRead);
+ Trace("readBuffer = [%s] dwByteCount = %d dwBytesRead = %d\n", readBuffer_ReadFile_test2, dwByteCount, dwBytesRead);
Trace("cresult = 1\n");
Trace("getlasterror = %d\n", GetLastError());
CloseHandle(hFile);
}
else
{
- return (validateResults(readBuffer, dwByteCount, dwBytesRead));
+ return (validateResults_ReadFile_test2(readBuffer_ReadFile_test2, dwByteCount, dwBytesRead));
}
}
return TRUE;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_ReadFile_test2_paltest_readfile_test2, "file_io/ReadFile/test2/paltest_readfile_test2")
{
HANDLE hFile = NULL;
const int BUFFER_SIZE = 2 * PAGESIZE;
}
/* allocate read-write memery for readBuffer */
- if (!(readBuffer = (char*) VirtualAlloc(NULL, BUFFER_SIZE, MEM_COMMIT, PAGE_READWRITE)))
+ if (!(readBuffer_ReadFile_test2 = (char*) VirtualAlloc(NULL, BUFFER_SIZE, MEM_COMMIT, PAGE_READWRITE)))
{
Fail("VirtualAlloc failed: GetLastError returns %d\n", GetLastError());
return FAIL;
}
/* write protect the second page of readBuffer */
- if (!VirtualProtect(&readBuffer[PAGESIZE], PAGESIZE, PAGE_NOACCESS, &oldProt))
+ if (!VirtualProtect(&readBuffer_ReadFile_test2[PAGESIZE], PAGESIZE, PAGE_NOACCESS, &oldProt))
{
Fail("VirtualProtect failed: GetLastError returns %d\n", GetLastError());
return FAIL;
for (i = 0; i< NOOFTESTS; i++)
{
- bRc = readTest(dwByteCount[i], szResults[i]);
+ bRc = readTest_ReadFile_test2(dwByteCount[i], szResults[i]);
if (bRc != TRUE)
{
Fail("ReadFile: ERROR -> Failed on test[%d]\n", i);
}
}
- VirtualFree(readBuffer, BUFFER_SIZE, MEM_RELEASE);
+ VirtualFree(readBuffer_ReadFile_test2, BUFFER_SIZE, MEM_RELEASE);
PAL_Terminate();
return PASS;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = ReadFile
-Name = Positive Test for ReadFile
-Type = DEFAULT
-EXE1 = readfile
-Description
-=Multiple tests of reads of varying sizes with verification
-
+++ /dev/null
-set(SOURCES
- ReadFile.cpp
-)
-
-add_executable(paltest_readfile_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_readfile_test3 coreclrpal)
-
-target_link_libraries(paltest_readfile_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szStringTest = "The quick fox jumped over the lazy dog's back.\0";
-const char* szEmptyString = "";
-const char* szReadableFile = "Readable.txt";
-const char* szResultsFile = "Results.txt";
+#define szStringTest "The quick fox jumped over the lazy dog's back.\0"
+#define szEmptyString ""
+#define szReadableFile "Readable.txt"
+#define szResultsFile "Results.txt"
-BOOL validateResults(const char* szString, // string read
+BOOL validateResults_ReadFile_test3(const char* szString, // string read
DWORD dwByteCount, // amount requested
DWORD dwBytesRead) // amount read
{
-BOOL readTest(DWORD dwByteCount, char cResult)
+BOOL readTest_ReadFile_test3(DWORD dwByteCount, char cResult)
{
HANDLE hFile = NULL;
DWORD dwBytesRead = 0;
}
else
{
- return (validateResults(szString, dwRequested, dwTotal));
+ return (validateResults_ReadFile_test3(szString, dwRequested, dwTotal));
}
}
-int __cdecl main(int argc, char **argv)
+PALTEST(file_io_ReadFile_test3_paltest_readfile_test3, "file_io/ReadFile/test3/paltest_readfile_test3")
{
HANDLE hFile = NULL;
DWORD dwByteCount[4] = {0, 1, 2, 3};
for (i = 0; i < 4; i++)
{
- bRc = readTest(dwByteCount[i], szResults[i]);
+ bRc = readTest_ReadFile_test3(dwByteCount[i], szResults[i]);
if (bRc != TRUE)
{
Fail("ReadFile: ERROR -> Failed on test[%d]\n", i);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = ReadFile
-Name = Positive Test for ReadFile
-Type = DEFAULT
-EXE1 = readfile
-Description
-=Multiple tests of reads of varying sizes with verification
-
+++ /dev/null
-set(SOURCES
- readfile.cpp
-)
-
-add_executable(paltest_readfile_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_readfile_test4 coreclrpal)
-
-target_link_libraries(paltest_readfile_test4
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_ReadFile_test4_paltest_readfile_test4, "file_io/ReadFile/test4/paltest_readfile_test4")
{
HANDLE hFile = NULL;
DWORD dwBytesWritten;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = ReadFile
-Name = Positive Test for ReadFile
-Type = DEFAULT
-EXE1 = readfile
-Description
-= Tests the PAL implementation of the ReadFile function.
-= Creates a file and writes a small string to it, attempt
-= to read many more characters that exist. The returned
-= number of chars should be the amount written originally
-= not the number requested.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- SearchPathW.cpp
-)
-
-add_executable(paltest_searchpathw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_searchpathw_test1 coreclrpal)
-
-target_link_libraries(paltest_searchpathw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szDir = ".";
+#define szDir "."
-const char* szNoFileName = "333asdf";
-const char* szNoFileNameExt = ".x77t";
+#define szNoFileName "333asdf"
+#define szNoFileNameExt ".x77t"
-const char* szFileNameExists = "searchpathw";
-const char* szFileNameExtExists = ".c";
+#define szFileNameExists "searchpathw"
+#define szFileNameExtExists ".c"
-const char* szFileNameExistsWithExt = "searchpathw.c";
+#define szFileNameExistsWithExt "searchpathw.c"
-char fileloc[_MAX_PATH];
+char fileloc_SearchPathW_test1[_MAX_PATH];
-void removeFileHelper(LPSTR pfile, int location)
+void removeFileHelper_SearchPathW_test1(LPSTR pfile, int location)
{
FILE *fp;
fp = fopen( pfile, "r");
}
-void RemoveAll()
+void RemoveAll_SearchPathW_test1()
{
- removeFileHelper(fileloc, 1);
+ removeFileHelper_SearchPathW_test1(fileloc_SearchPathW_test1, 1);
}
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(file_io_SearchPathW_test1_paltest_searchpathw_test1, "file_io/SearchPathW/test1/paltest_searchpathw_test1")
+{
WCHAR* lpPath = NULL;
WCHAR* lpFileName = NULL;
Fail("ERROR: GetTempPathA failed to get a path\n");
}
- memset(fileloc, 0, _MAX_PATH);
- sprintf_s(fileloc, _countof(fileloc), "%s%s", fullPath, szFileNameExistsWithExt);
+ memset(fileloc_SearchPathW_test1, 0, _MAX_PATH);
+ sprintf_s(fileloc_SearchPathW_test1, _countof(fileloc_SearchPathW_test1), "%s%s", fullPath, szFileNameExistsWithExt);
- RemoveAll();
+ RemoveAll_SearchPathW_test1();
- hsearchfile = CreateFileA(fileloc, GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
+ hsearchfile = CreateFileA(fileloc_SearchPathW_test1, GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
if (hsearchfile == NULL)
{
- Trace("ERROR[%ul]: couldn't create %s\n", GetLastError(), fileloc);
+ Trace("ERROR[%ul]: couldn't create %s\n", GetLastError(), fileloc_SearchPathW_test1);
return FAIL;
}
free(lpPath);
free(lpFileName);
- RemoveAll();
+ RemoveAll_SearchPathW_test1();
PAL_Terminate();
return PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SearchPathW
-Name = Test #1 for SearchPathW
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests the PAL implementation of the SearchFileW function
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-
+++ /dev/null
-set(SOURCES
- SetEndOfFile.cpp
-)
-
-add_executable(paltest_setendoffile_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_setendoffile_test1 coreclrpal)
-
-target_link_libraries(paltest_setendoffile_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetEndOfFile_test1_paltest_setendoffile_test1, "file_io/SetEndOfFile/test1/paltest_setendoffile_test1")
{
HANDLE hFile = NULL;
BOOL bRc = FALSE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetEndOfFile
-Name = Positive Test for SetEndOfFile
-Type = DEFAULT
-EXE1 = setendoffile
-Description
-=Truncate a file
-
+++ /dev/null
-set(SOURCES
- SetEndOfFile.cpp
-)
-
-add_executable(paltest_setendoffile_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_setendoffile_test2 coreclrpal)
-
-target_link_libraries(paltest_setendoffile_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szStringTest = "The quick fox jumped over the lazy dog's back.";
-const char* szTextFile = "text.txt";
+#define szStringTest "The quick fox jumped over the lazy dog's back."
-
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_SetEndOfFile_test2_paltest_setendoffile_test2, "file_io/SetEndOfFile/test2/paltest_setendoffile_test2")
{
HANDLE hFile = NULL;
DWORD dwByteCount = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetEndOfFile
-Name = Positive Test for SetEndOfFile
-Type = DEFAULT
-EXE1 = setendoffile
-Description
-=Truncate the test file using SetEndOfFile
+++ /dev/null
-set(SOURCES
- SetEndOfFile.cpp
-)
-
-add_executable(paltest_setendoffile_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_setendoffile_test3 coreclrpal)
-
-target_link_libraries(paltest_setendoffile_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetEndOfFile_test3_paltest_setendoffile_test3, "file_io/SetEndOfFile/test3/paltest_setendoffile_test3")
{
HANDLE hFile = NULL;
DWORD dwByteCount = 0;
Trace("SetEndOfFile: ERROR -> Unable to close file \"%s\".\n",
szTextFile);
}
- PAL_Terminate();
+ PAL_TerminateEx(FAIL);
return FAIL;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetEndOfFile
-Name = Positive Test for SetEndOfFile
-Type = DEFAULT
-EXE1 = setendoffile
-Description
-=Set the end of file past the actual end
-=of file thereby, extending it.
-
+++ /dev/null
-set(SOURCES
- setendoffile.cpp
-)
-
-add_executable(paltest_setendoffile_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_setendoffile_test4 coreclrpal)
-
-target_link_libraries(paltest_setendoffile_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szStringTest = "The quick fox jumped over the lazy dog's back.";
-const char* szTextFile = "test.tmp";
+#define szStringTest "The quick fox jumped over the lazy dog's back."
+#define szTextFile "test.tmp"
static void Cleanup(HANDLE hFile)
{
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_SetEndOfFile_test4_paltest_setendoffile_test4, "file_io/SetEndOfFile/test4/paltest_setendoffile_test4")
{
HANDLE hFile = NULL;
DWORD dwBytesWritten;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetEndOfFile
-Name = Positive Test for SetEndOfFile (test 4)
-Type = DEFAULT
-EXE1 = setendoffile
-Description
-= Tests the PAL implementation of the SetEndOfFile function.
-= Verify that the file pointer is the same before
-= and after a SetEndOfFile using SetFilePointer with
-= FILE_BEGIN, FILE_CURRENT and FILE_END
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_setendoffile_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_setendoffile_test5 coreclrpal)
-
-target_link_libraries(paltest_setendoffile_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_SetEndOfFile_test5_paltest_setendoffile_test5, "file_io/SetEndOfFile/test5/paltest_setendoffile_test5")
{
HANDLE hFile = NULL;
DWORD dwBytesWritten;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetEndOfFile
-Name = Positive Test for SetEndOfFile
-Type = DEFAULT
-EXE1 = test5
-Description
-= Tests the PAL implementation of the SetEndOfFile function.
-= Test attempts to set the end of file pointer to a position
-= which has data before and after it. Then it attempts to
-= read text beyond the end of file pointer.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-
+++ /dev/null
-set(SOURCES
- SetFilePointer.cpp
-)
-
-add_executable(paltest_setfilepointer_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_setfilepointer_test1 coreclrpal)
-
-target_link_libraries(paltest_setfilepointer_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetFilePointer_test1_paltest_setfilepointer_test1, "file_io/SetFilePointer/test1/paltest_setfilepointer_test1")
{
HANDLE hFile = NULL;
DWORD dwByteCount = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetFilePointer
-Name = Test for SetFilePointer (test 1)
-Type = DEFAULT
-EXE1 = setfilepointer
-Description
-=Set the file pointer on a NULL file handle and other invalid options
-
+++ /dev/null
-set(SOURCES
- SetFilePointer.cpp
-)
-
-add_executable(paltest_setfilepointer_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_setfilepointer_test2 coreclrpal)
-
-target_link_libraries(paltest_setfilepointer_test2
- ${COMMON_TEST_LIBRARIES}
-)
const char * const szText =
"The quick brown fox jumped over the lazy dog's back.";
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetFilePointer_test2_paltest_setfilepointer_test2, "file_io/SetFilePointer/test2/paltest_setfilepointer_test2")
{
HANDLE hFile = NULL;
DWORD dwByteCount = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetFilePointer
-Name = Positive Test for SetFilePointer (test 2)
-Type = DEFAULT
-EXE1 = setfilepointer
-Description
-=Tests the FILE_BEGIN option
-
+++ /dev/null
-set(SOURCES
- SetFilePointer.cpp
-)
-
-add_executable(paltest_setfilepointer_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_setfilepointer_test3 coreclrpal)
-
-target_link_libraries(paltest_setfilepointer_test3
- ${COMMON_TEST_LIBRARIES}
-)
const char* const szText =
"The quick brown fox jumped over the lazy dog's back.";
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetFilePointer_test3_paltest_setfilepointer_test3, "file_io/SetFilePointer/test3/paltest_setfilepointer_test3")
{
HANDLE hFile = NULL;
DWORD dwByteCount = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetFilePointer
-Name = Positive Test for SetFilePointer (test 3)
-Type = DEFAULT
-EXE1 = setfilepointer
-Description
-=Tests the FILE_CURRENT option
-
+++ /dev/null
-set(SOURCES
- SetFilePointer.cpp
-)
-
-add_executable(paltest_setfilepointer_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_setfilepointer_test4 coreclrpal)
-
-target_link_libraries(paltest_setfilepointer_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
const char* szText = "The quick brown fox jumped over the lazy dog's back.";
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetFilePointer_test4_paltest_setfilepointer_test4, "file_io/SetFilePointer/test4/paltest_setfilepointer_test4")
{
HANDLE hFile = NULL;
DWORD dwByteCount = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetFilePointer
-Name = Positive Test for SetFilePointer (test 4)
-Type = DEFAULT
-EXE1 = setfilepointer
-Description
-=Tests the FILE_END option
-
+++ /dev/null
-set(SOURCES
- SetFilePointer.cpp
-)
-
-add_executable(paltest_setfilepointer_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_setfilepointer_test5 coreclrpal)
-
-target_link_libraries(paltest_setfilepointer_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetFilePointer_test5_paltest_setfilepointer_test5, "file_io/SetFilePointer/test5/paltest_setfilepointer_test5")
{
HANDLE hFile = NULL;
DWORD dwOffset = 1;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetFilePointer
-Name = Positive Test for SetFilePointer (test 5)
-Type = DEFAULT
-EXE1 = setfilepointer
-Description
-=Tests the FILE_BEGIN option with the high word parameter.
-=This test requires about 4 gig free disk space
-
+++ /dev/null
-set(SOURCES
- SetFilePointer.cpp
-)
-
-add_executable(paltest_setfilepointer_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_setfilepointer_test6 coreclrpal)
-
-target_link_libraries(paltest_setfilepointer_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetFilePointer_test6_paltest_setfilepointer_test6, "file_io/SetFilePointer/test6/paltest_setfilepointer_test6")
{
HANDLE hFile = NULL;
DWORD dwOffset = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetFilePointer
-Name = Positive Test for SetFilePointer (test 6)
-Type = DEFAULT
-EXE1 = setfilepointer
-Description
-=Tests the FILE_CURRENT option with the high word parameter.
-=This test requires about 4 GB free disk space.
-
+++ /dev/null
-set(SOURCES
- SetFilePointer.cpp
-)
-
-add_executable(paltest_setfilepointer_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_setfilepointer_test7 coreclrpal)
-
-target_link_libraries(paltest_setfilepointer_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szTextFile = "text.txt";
-int __cdecl main(int argc, char *argv[])
+
+PALTEST(file_io_SetFilePointer_test7_paltest_setfilepointer_test7, "file_io/SetFilePointer/test7/paltest_setfilepointer_test7")
{
HANDLE hFile = NULL;
DWORD dwOffset = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = SetFilePointer
-Name = Positive Test for SetFilePointer (test 7)
-Type = DEFAULT
-EXE1 = setfilepointer
-Description
-=Tests the FILE_END option with the high word parameter
-=This test requires about 4 GB of free disk space.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-
+++ /dev/null
-set(SOURCES
- WriteFile.cpp
-)
-
-add_executable(paltest_writefile_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_writefile_test1 coreclrpal)
-
-target_link_libraries(paltest_writefile_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szStringTest = "The quick fox jumped over the lazy dog's back.";
-const char* szReadOnlyFile = "ReadOnly.txt";
-void do_cleanup()
+#define szStringTest "The quick fox jumped over the lazy dog's back."
+#define szReadOnlyFile "ReadOnly.txt"
+
+void do_cleanup_WriteFile_test1()
{
BOOL bRc = FALSE;
bRc = DeleteFileA(szReadOnlyFile);
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_WriteFile_test1_paltest_writefile_test1, "file_io/WriteFile/test1/paltest_writefile_test1")
{
HANDLE hFile = NULL;
DWORD dwBytesWritten;
{
last_error = GetLastError();
Trace("WriteFile: ERROR[%ld] -> Unable to make the file read-only.\n", last_error);
- do_cleanup();
+ do_cleanup_WriteFile_test1();
Fail("WriteFile: ERROR[%ld] -> Unable to make the file read-only.\n", last_error);
}
if (bRc == TRUE)
{ last_error = GetLastError();
Trace("WriteFile: ERROR[%ld] -> Able to write to a read-only file.\n", last_error);
- do_cleanup();
+ do_cleanup_WriteFile_test1();
Fail("WriteFile: ERROR[%ld] -> Able to write to a read-only file.\n", last_error);
}
if (bRc != TRUE)
{ last_error = GetLastError();
Trace("WriteFile: ERROR[%ld] -> Unable to close file \"%s\".\n", last_error, szReadOnlyFile);
- do_cleanup();
+ do_cleanup_WriteFile_test1();
Fail("WriteFile: ERROR -> Unable to close file \"%s\".\n",
szReadOnlyFile);
}
Fail("WriteFile: ERROR[%ld] -> Unable to make the file attribute NORMAL.\n", last_error);
}
- do_cleanup();
+ do_cleanup_WriteFile_test1();
PAL_Terminate();
return PASS;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = WriteFile
-Name = test for WriteFile
-Type = DEFAULT
-EXE1 = writefile
-Description
-=Attempt to write to a NULL handle and to a read-only file
-
+++ /dev/null
-set(SOURCES
- WriteFile.cpp
-)
-
-add_executable(paltest_writefile_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_writefile_test2 coreclrpal)
-
-target_link_libraries(paltest_writefile_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-char* writeBuffer;
-const char* szWritableFile = "Writeable.txt";
-const char* szResultsFile = "Results.txt";
+char* writeBuffer_WriteFile_test2;
+#define szWritableFile "Writeable.txt"
+#define szResultsFile "Results.txt"
const int PAGESIZE = 4096;
-BOOL writeTest(DWORD dwByteCount, DWORD dwBytesWrittenResult, BOOL bResult)
+BOOL writeTest_WriteFile_test2(DWORD dwByteCount, DWORD dwBytesWrittenResult, BOOL bResult)
{
HANDLE hFile = NULL;
DWORD dwBytesWritten;
return FALSE;
}
- bRc = WriteFile(hFile, writeBuffer, dwByteCount, &dwBytesWritten, NULL);
+ bRc = WriteFile(hFile, writeBuffer_WriteFile_test2, dwByteCount, &dwBytesWritten, NULL);
CloseHandle(hFile);
if ((bRc != bResult) || (dwBytesWrittenResult != dwBytesWritten))
return TRUE;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_WriteFile_test2_paltest_writefile_test2, "file_io/WriteFile/test2/paltest_writefile_test2")
{
const char * testString = "The quick fox jumped over the lazy dog's back.";
const int testStringLen = strlen(testString);
return FAIL;
}
- /* allocate read-write memery for writeBuffer */
- if (!(writeBuffer = (char*) VirtualAlloc(NULL, BUFFER_SIZE, MEM_COMMIT,
+ /* allocate read-write memery for writeBuffer_WriteFile_test2 */
+ if (!(writeBuffer_WriteFile_test2 = (char*) VirtualAlloc(NULL, BUFFER_SIZE, MEM_COMMIT,
PAGE_READWRITE)))
{
Fail("VirtualAlloc failed: GetLastError returns %d\n", GetLastError());
return FAIL;
}
- memset((void*) writeBuffer, '.', BUFFER_SIZE);
- strcpy(writeBuffer, testString);
+ memset((void*) writeBuffer_WriteFile_test2, '.', BUFFER_SIZE);
+ strcpy(writeBuffer_WriteFile_test2, testString);
- /* write protect the second page of writeBuffer */
- if (!VirtualProtect(&writeBuffer[PAGESIZE], PAGESIZE, PAGE_NOACCESS, &oldProt))
+ /* write protect the second page of writeBuffer_WriteFile_test2 */
+ if (!VirtualProtect(&writeBuffer_WriteFile_test2[PAGESIZE], PAGESIZE, PAGE_NOACCESS, &oldProt))
{
Fail("VirtualProtect failed: GetLastError returns %d\n", GetLastError());
return FAIL;
for (j = 0; j< 4; j++)
{
- bRc = writeTest(dwByteCount[j], dwByteWritten[j], bResults[j]);
+ bRc = writeTest_WriteFile_test2(dwByteCount[j], dwByteWritten[j], bResults[j]);
if (bRc != TRUE)
{
Fail("WriteFile: ERROR -> Failed on test[%d]\n", j);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = WriteFile
-Name = Positive Test for WriteFile
-Type = DEFAULT
-EXE1 = writefile
-Description
-=Multiple tests of writes of varying sizes with verification
-
+++ /dev/null
-set(SOURCES
- WriteFile.cpp
-)
-
-add_executable(paltest_writefile_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_writefile_test3 coreclrpal)
-
-target_link_libraries(paltest_writefile_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* szStringTest = "The quick fox jumped over the lazy dog's back.\0";
-const char* szWritableFile = "writeable.txt";
+#define szStringTest "The quick fox jumped over the lazy dog's back.\0"
+#define szWritableFile "writeable.txt"
-BOOL validateResults(const char* szString)
+BOOL validateResults_WriteFile_test3(const char* szString)
{
FILE *pFile = NULL;
char szReadString[100];
-BOOL writeTest(const char* szString)
+BOOL writeTest_WriteFile_test3(const char* szString)
{
HANDLE hFile = NULL;
DWORD dwBytesWritten;
}
else
{
- return (validateResults(szString));
+ return (validateResults_WriteFile_test3(szString));
}
return TRUE;
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_WriteFile_test3_paltest_writefile_test3, "file_io/WriteFile/test3/paltest_writefile_test3")
{
const char *pString = szStringTest;
BOOL bRc = FALSE;
}
- bRc = writeTest(pString);
+ bRc = writeTest_WriteFile_test3(pString);
if (bRc != TRUE)
{
Fail("WriteFile: ERROR -> Failed\n");
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = WriteFile
-Name = Positive Test for WriteFile
-Type = DEFAULT
-EXE1 = writefile
-Description
-=Multiple consecutive writes to a file with verification
-
+++ /dev/null
-set(SOURCES
- writefile.cpp
-)
-
-add_executable(paltest_writefile_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_writefile_test4 coreclrpal)
-
-target_link_libraries(paltest_writefile_test4
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = WriteFile
-Name = Positive Test for WriteFile
-Type = DEFAULT
-EXE1 = writefile
-Description
-= writes to a file at different locations with verification
-
#include <palsuite.h>
-BOOL CleanUp(HANDLE hFile, const char * fileName)
+BOOL CleanUp_WriteFile_test4(HANDLE hFile, const char * fileName)
{
BOOL bRc = TRUE;
if (CloseHandle(hFile) != TRUE)
return bRc;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_WriteFile_test4_paltest_writefile_test4, "file_io/WriteFile/test4/paltest_writefile_test4")
{
const char* szStringTest = "1234567890";
const char* szWritableFile = "writeable.txt";
{
Trace("WriteFile: ERROR -> Unable to write to file error: %ld \n",
GetLastError());
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test4(hFile,szWritableFile);
Fail("");
}
if(!FlushFileBuffers(hFile))
{ Trace("WriteFile: ERROR -> Call to FlushFile Buffers failed "
"error %ld \n",GetLastError());
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test4(hFile,szWritableFile);
Fail("");
}
Trace("WriteFile: ERROR -> writing %u chars to empty file "
"caused its size to become %u\n",strlen(szStringTest),
GetFileSize(hFile, NULL));
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test4(hFile,szWritableFile);
Fail("");
}
Trace("WriteFile: ERROR -> Unable to write to file after "
" moiving the file poiner to 5 error: %ld \n",
GetLastError());
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test4(hFile,szWritableFile);
Fail("");
}
{
Trace("WriteFile: ERROR -> Call to FlushFile Buffers failed "
"error %ld \n",GetLastError());
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test4(hFile,szWritableFile);
Fail("");
}
"sitting the file pointer to 5 resulted in wrong file size; "
"Expected %u resulted %u.",strlen(szStringTest),
(strlen(szStringTest)+5),GetFileSize(hFile, NULL));
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test4(hFile,szWritableFile);
Fail("");
}
- if (!CleanUp(hFile,szWritableFile))
+ if (!CleanUp_WriteFile_test4(hFile,szWritableFile))
{
Fail("");
}
+++ /dev/null
-set(SOURCES
- writefile.cpp
-)
-
-add_executable(paltest_writefile_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_writefile_test5 coreclrpal)
-
-target_link_libraries(paltest_writefile_test5
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = WriteFile
-Name = Positive Test for WriteFile
-Type = DEFAULT
-EXE1 = writefile
-Description
-= write lots of data to a file. then check with
-= GetFileSize
-= This test is disabled due to its time overhead.
-
#include <palsuite.h>
-BOOL CleanUp(HANDLE hFile, const char * fileName)
+BOOL CleanUp_WriteFile_test5(HANDLE hFile, const char * fileName)
{
BOOL bRc = TRUE;
if (CloseHandle(hFile) != TRUE)
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_WriteFile_test5_paltest_writefile_test5, "file_io/WriteFile/test5/paltest_writefile_test5")
{
HANDLE hFile = NULL;
{
Trace("WriteFile: ERROR -> Unable to write to file error: %ld \n",
GetLastError());
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test5(hFile,szWritableFile);
Fail("");
}
{
Trace("WriteFile: ERROR -> Call to FlushFileBuffers failed"
"error %ld \n",GetLastError());
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test5(hFile,szWritableFile);
Fail("");
}
Trace("WriteFile: ERROR -> file size did not change properly"
" after writing 4000 000 chars to it ( size= %u )\n",
GetFileSize(hFile,NULL));
- CleanUp(hFile,szWritableFile);
+ CleanUp_WriteFile_test5(hFile,szWritableFile);
Fail("");
}
- if (!CleanUp(hFile,szWritableFile))
+ if (!CleanUp_WriteFile_test5(hFile,szWritableFile))
{
Fail("");
}
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_errorpathnotfound_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_errorpathnotfound_test1 coreclrpal)
-
-target_link_libraries(paltest_errorpathnotfound_test1
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_errorpathnotfound_test1_paltest_errorpathnotfound_test1, "file_io/errorpathnotfound/test1/paltest_errorpathnotfound_test1")
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-
-# The .NET Foundation licenses this file to you under the MIT license.
-
-
-
-
-
-Version = 1.0
-
-Section = file_io
-
-Function = some File_io functions
-
-Name = errorpathnotfound - checking GetLastError.
-
-Type = DEFAULT
-
-EXE1 = test1
-
-Description
-
-= Test the return value of GetLastError() after calling
-
-= some file_io functions with an invalid path.
-
-= Functions covered by this test are:
-
-= CopyFile, CreateFile and DeleteFile.
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_errorpathnotfound_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_errorpathnotfound_test2 coreclrpal)
-
-target_link_libraries(paltest_errorpathnotfound_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_errorpathnotfound_test2_paltest_errorpathnotfound_test2, "file_io/errorpathnotfound/test2/paltest_errorpathnotfound_test2")
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-
-# The .NET Foundation licenses this file to you under the MIT license.
-
-
-
-
-Version = 1.0
-
-Section = file_io
-
-Function = some File_io functions
-
-Name = errorpathnotfound - checking GetLastError.
-
-Type = DEFAULT
-
-EXE1 = test2
-
-Description
-
-= Test the return value of GetLastError() after calling
-
-= some file_io functions with an invalid path.
-
-= Functions covered by this test are:
-
-= FindFirstFileA, FindFirstFileW,
-
-= GetFileAttributesA, GetFileAttributesW,
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- gettemppatha.cpp
-)
-
-add_executable(paltest_gettemppatha_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettemppatha_test1 coreclrpal)
-
-target_link_libraries(paltest_gettemppatha_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(file_io_gettemppatha_test1_paltest_gettemppatha_test1, "file_io/gettemppatha/test1/paltest_gettemppatha_test1")
{
if (0 != PAL_Initialize(argc,argv))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = file_io
-Function = GetTempPathA
-Name = Test for GetTempPathA (test 1)
-Type = DEFAULT
-EXE1 = gettemppatha
-Description
-= Calls GetTempPathA and verifies by passing the returned
-= value to CreateDirectoryA. If the returned path exists,
-= CreateDirectoryA will fail.
-
+++ /dev/null
-add_subdirectory(CreateFileMappingW)
-add_subdirectory(FreeLibrary)
-add_subdirectory(FreeLibraryAndExitThread)
-add_subdirectory(GetModuleFileNameA)
-add_subdirectory(GetModuleFileNameW)
-add_subdirectory(GetProcAddress)
-add_subdirectory(LocalAlloc)
-add_subdirectory(LocalFree)
-add_subdirectory(MapViewOfFile)
-add_subdirectory(OpenFileMappingW)
-add_subdirectory(ProbeMemory)
-add_subdirectory(UnmapViewOfFile)
-add_subdirectory(VirtualAlloc)
-add_subdirectory(VirtualFree)
-add_subdirectory(VirtualProtect)
-add_subdirectory(VirtualQuery)
+++ /dev/null
-add_subdirectory(CreateFileMapping_neg1)
-add_subdirectory(test1)
-
-# TODO: make this test compile
-# add_subdirectory(test2)
-
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
+++ /dev/null
-set(SOURCES
- CreateFileMapping_neg.cpp
-)
-
-add_executable(paltest_createfilemappingw_createfilemapping_neg1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_createfilemapping_neg1 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_createfilemapping_neg1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_CreateFileMapping_neg1_paltest_createfilemappingw_createfilemapping_neg1, "filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/paltest_createfilemappingw_createfilemapping_neg1")
{
HANDLE FileHandle;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMapping
-Name = Negative test for CreateFileMappingW - with a zero length file
-TYPE = DEFAULT
-EXE1 = createfilemapping_neg
-Description
-=Test the CreateFileMapping to try to map a zero length file
+++ /dev/null
-set(SOURCES
- CreateFileMappingW.cpp
-)
-
-add_executable(paltest_createfilemappingw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test1 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test1
- ${COMMON_TEST_LIBRARIES}
-)
const int MAPPINGSIZE = 2048;
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test1_paltest_createfilemappingw_test1, "filemapping_memmgt/CreateFileMappingW/test1/paltest_createfilemappingw_test1")
{
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMappingW
-Name = CreateFileMappingW with PAGE_READONLY
-TYPE = DEFAULT
-EXE1 = createfilemappingw
-Description
-=Test the CreateFileMappingW to create a unnamed file-mapping object
-=and with PAGE_READONLY protection
+++ /dev/null
-set(SOURCES
- CreateFileMappingW.cpp
-)
-
-add_executable(paltest_createfilemappingw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test2 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test2_paltest_createfilemappingw_test2, "filemapping_memmgt/CreateFileMappingW/test2/paltest_createfilemappingw_test2")
{
HANDLE FileHandle;
+++ /dev/null
-set(SOURCES
- CreateFileMappingW.cpp
-)
-
-add_executable(paltest_createfilemappingw_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test3 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test3
- ${COMMON_TEST_LIBRARIES}
-)
const int MAPPINGSIZE = 2048;
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test3_paltest_createfilemappingw_test3, "filemapping_memmgt/CreateFileMappingW/test3/paltest_createfilemappingw_test3")
{
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMappingW
-Name = CreateFileMappingW with PAGE_READWRITE
-TYPE = DEFAULT
-EXE1 = createfilemappingw
-Description
-=Test the CreateFileMappingW to create a unnamed file-mapping object
-=and with PAGE_READWRITE protection
+++ /dev/null
-set(SOURCES
- CreateFileMappingW.cpp
-)
-
-add_executable(paltest_createfilemappingw_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test4 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test4
- ${COMMON_TEST_LIBRARIES}
-)
const int MAPPINGSIZE = 2048;
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test4_paltest_createfilemappingw_test4, "filemapping_memmgt/CreateFileMappingW/test4/paltest_createfilemappingw_test4")
{
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMappingW
-Name = CreateFileMappingW with PAGE_WRITECOPY.
-TYPE = DEFAULT
-EXE1 = createfilemappingw
-Description
-=Test the CreateFileMapping to create a unnamed file-mapping object
-=and with PAGE_WRITE protection
+++ /dev/null
-set(SOURCES
- CreateFileMappingW.cpp
-)
-
-add_executable(paltest_createfilemappingw_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test5 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
const int MAPPINGSIZE = 2048;
-HANDLE SWAP_HANDLE = ((VOID *)(-1));
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test5_paltest_createfilemappingw_test5, "filemapping_memmgt/CreateFileMappingW/test5/paltest_createfilemappingw_test5")
{
+ HANDLE SWAP_HANDLE = ((VOID *)(-1));
char testString[] = "this is a test string";
WCHAR lpObjectName[] = {'m','y','O','b','j','e','c','t','\0'};
int RetVal = FAIL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMappingW
-Name = CreateFileMappingW - PAGE_READWRITE
-TYPE = DEFAULT
-EXE1 = createfilemappingw
-Description
-= Positive test the CreateFileMappingW API.
-= Test CreateFileMappingW to create a named
-= "swap" handle with access PAGE_READONLY.
+++ /dev/null
-set(SOURCES
- CreateFileMappingW.cpp
-)
-
-add_executable(paltest_createfilemappingw_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test6 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
const int MAPPINGSIZE = 2048;
-HANDLE SWAP_HANDLE = ((VOID *)(-1));
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test6_paltest_createfilemappingw_test6, "filemapping_memmgt/CreateFileMappingW/test6/paltest_createfilemappingw_test6")
{
+ HANDLE SWAP_HANDLE = ((VOID *)(-1));
char testString[] = "this is a test string";
WCHAR lpObjectName[] = {'m','y','O','b','j','e','c','t','\0'};
char results[2048];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMapping
-Name = CreateFileMappingW - with PAGE_READONLY
-TYPE = DEFAULT
-EXE1 = createfilemappingw
-Description
-= Positive test the CreateFileMappingW API.
-= Test CreateFileMappingW to create a named
-= "swap" handle with access PAGE_READWRITE.
+++ /dev/null
-set(SOURCES
- createfilemapping.cpp
-)
-
-add_executable(paltest_createfilemappingw_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test7 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
const int MAPPINGSIZE = 2048;
-HANDLE SWAP_HANDLE = ((VOID *)(-1));
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test7_paltest_createfilemappingw_test7, "filemapping_memmgt/CreateFileMappingW/test7/paltest_createfilemappingw_test7")
{
+ HANDLE SWAP_HANDLE = ((VOID *)(-1));
char testString[] = "this is a test string";
WCHAR lpObjectName[] = {'m','y','O','b','j','e','c','t','\0'};
char results[2048];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMappingW
-Name = CreateFileMappingW - PAGE_COPYWRITE
-TYPE = DEFAULT
-EXE1 = createfilemapping
-Description
-= Positive test the CreateFileMappingW API.
-= Test CreateFileMappingW to create a named
-= "swap" handle with access PAGE_READWRITE
+++ /dev/null
-set(SOURCES
- createfilemapping.cpp
-)
-
-add_executable(paltest_createfilemappingw_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test8 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test8
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
const int MAPPINGSIZE = 2048;
-HANDLE SWAP_HANDLE = ((VOID *)(-1));
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test8_paltest_createfilemappingw_test8, "filemapping_memmgt/CreateFileMappingW/test8/paltest_createfilemappingw_test8")
{
+ HANDLE SWAP_HANDLE = ((VOID *)(-1));
WCHAR lpObjectName[] = {'m','y','O','b','j','e','c','t','\0'};
HANDLE hFileMap;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMappingW - Special cases
-Name = CreateFileMappingW
-TYPE = DEFAULT
-EXE1 = createfilemapping
-Description
-= Positive test the CreateFileMappingW API.
-= Test the un-verifiable parameter combinations.
+++ /dev/null
-set(SOURCES
- createfilemapping.cpp
-)
-
-add_executable(paltest_createfilemappingw_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_createfilemappingw_test9 coreclrpal)
-
-target_link_libraries(paltest_createfilemappingw_test9
- ${COMMON_TEST_LIBRARIES}
-)
const int MAPPINGSIZE = 2048;
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_CreateFileMappingW_test9_paltest_createfilemappingw_test9, "filemapping_memmgt/CreateFileMappingW/test9/paltest_createfilemappingw_test9")
{
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = CreateFileMappingW
-Name = CreateFileMappingW negative testing
-TYPE = DEFAULT
-EXE1 = createfilemapping
-Description
-= Negative test the CreateFileMapping API.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- dlltest.cpp
- FreeLibrary.cpp
-)
-
-add_executable(paltest_freelibrary_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_freelibrary_test1 coreclrpal)
-
-target_link_libraries(paltest_freelibrary_test1
- ${COMMON_TEST_LIBRARIES}
-)
BOOL PALAPI TestDll(HMODULE, int);
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_FreeLibrary_test1_paltest_freelibrary_test1, "filemapping_memmgt/FreeLibrary/test1/paltest_freelibrary_test1")
{
HANDLE hLib;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = FreeLibrary
-Name = Positive test for FreeLibrary API
-TYPE = DEFAULT
-EXE1 = freelibrary
-LIB1 = dlltest
-Description
-=Test the FreeLibrary to decrement the reference
-=count of the loaded DLL
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_freelibrary_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_freelibrary_test2 coreclrpal)
-
-target_link_libraries(paltest_freelibrary_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char* argv[])
+PALTEST(filemapping_memmgt_FreeLibrary_test2_paltest_freelibrary_test2, "filemapping_memmgt/FreeLibrary/test2/paltest_freelibrary_test2")
{
HANDLE hLib;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = FreeLibrary
-Name = Negative test for FreeLibrary
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the FreeLibrary function.
-= This is a negative test that will pass an invalid and a
-= null handle to FreeLibrary.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- dlltest.cpp
- test1.cpp
-)
-
-add_executable(paltest_freelibraryandexitthread_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_freelibraryandexitthread_test1 coreclrpal)
-
-target_link_libraries(paltest_freelibraryandexitthread_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define TIMEOUT 60000
-BOOL PALAPI StartThreadTest();
-DWORD PALAPI CreateTestThread(LPVOID);
-BOOL PALAPI TestDll(HMODULE, int);
+BOOL PALAPI StartThreadTest_FreeLibraryAndExitThread_test1();
+DWORD PALAPI CreateTestThread_FreeLibraryAndExitThread_test1(LPVOID);
+BOOL PALAPI TestDll_FreeLibraryAndExitThread_test1(HMODULE, int);
-int __cdecl main(int argc, char* argv[])
+PALTEST(filemapping_memmgt_FreeLibraryAndExitThread_test1_paltest_freelibraryandexitthread_test1, "filemapping_memmgt/FreeLibraryAndExitThread/test1/paltest_freelibraryandexitthread_test1")
{
/*Initialize the PAL*/
if ((PAL_Initialize(argc, argv)) != 0)
return (FAIL);
}
- if (!StartThreadTest())
+ if (!StartThreadTest_FreeLibraryAndExitThread_test1())
{
Fail("ERROR: FreeLibraryAndExitThread test failed.\n");
}
}
-BOOL PALAPI StartThreadTest()
+BOOL PALAPI StartThreadTest_FreeLibraryAndExitThread_test1()
{
HMODULE hLib;
HANDLE hThread;
DWORD dwThreadId;
- LPTHREAD_START_ROUTINE lpStartAddress = &CreateTestThread;
+ LPTHREAD_START_ROUTINE lpStartAddress = &CreateTestThread_FreeLibraryAndExitThread_test1;
LPVOID lpParameter = (LPVOID)lpStartAddress;
DWORD rc = -1;
/*Load library (DLL).*/
}
/*Test access to DLL.*/
- if(!TestDll(hLib, 0))
+ if(!TestDll_FreeLibraryAndExitThread_test1(hLib, 0))
{
Trace("ERROR: TestDll function returned FALSE "
"expected TRUE\n.");
return (TRUE);
}
-BOOL PALAPI TestDll(HMODULE hLib, int testResult)
+BOOL PALAPI TestDll_FreeLibraryAndExitThread_test1(HMODULE hLib, int testResult)
{
int RetVal;
char FunctName[] = "DllTest";
return (TRUE);
}
-DWORD PALAPI CreateTestThread(LPVOID lpParam)
+DWORD PALAPI CreateTestThread_FreeLibraryAndExitThread_test1(LPVOID lpParam)
{
/* Test access to DLL.*/
- TestDll(lpParam, 1);
+ TestDll_FreeLibraryAndExitThread_test1(lpParam, 1);
/*Free library and exit thread.*/
FreeLibraryAndExitThread(lpParam, (DWORD)0);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = FreeLibraryAndExitThread
-Name = Positive test for FreeLibraryAndExitThread
-TYPE = DEFAULT
-EXE1 = test1
-LIB1 = dlltest
-Description
-= Tests the PAL implementation of the FreeLibraryAndExitThread
-= function. When run, FreeLibraryAndExitThread will exit the
-= process that it is called within, therefore we create a
-= thread to run the API. Then we test for the existance of the
-= thread and access to the library.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- GetModuleFileNameA.cpp
-)
-
-add_executable(paltest_getmodulefilenamea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getmodulefilenamea_test1 coreclrpal)
-
-target_link_libraries(paltest_getmodulefilenamea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define Delimiter "\\"
#endif
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_GetModuleFileNameA_test1_paltest_getmodulefilenamea_test1, "filemapping_memmgt/GetModuleFileNameA/test1/paltest_getmodulefilenamea_test1")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = GetModuleFileNameA
-Name = Positive test for GetModuleFileNameA API
-TYPE = DEFAULT
-EXE1 = getmodulefilenamea
-Description
-=Test the GetModuleFileNameA to retrieve the specified module
-=full path and file name
+++ /dev/null
-set(SOURCES
- GetModuleFileNameA.cpp
-)
-
-add_executable(paltest_getmodulefilenamea_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getmodulefilenamea_test2 coreclrpal)
-
-target_link_libraries(paltest_getmodulefilenamea_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define MODULENAMEBUFFERSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_GetModuleFileNameA_test2_paltest_getmodulefilenamea_test2, "filemapping_memmgt/GetModuleFileNameA/test2/paltest_getmodulefilenamea_test2")
{
DWORD ModuleNameLength;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = GetModuleFileNameA
-Name = Positive test for GetModuleFileNameA API
-TYPE = DEFAULT
-EXE1 = getmodulefilenamea
-Description
-=Test the GetModuleFileNameA to retrieve current process full
-=full path and file name by passing a NULL module handle
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- GetModuleFileNameW.cpp
-)
-
-add_executable(paltest_getmodulefilenamew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getmodulefilenamew_test1 coreclrpal)
-
-target_link_libraries(paltest_getmodulefilenamew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define Delimiter "\\"
#endif
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_GetModuleFileNameW_test1_paltest_getmodulefilenamew_test1, "filemapping_memmgt/GetModuleFileNameW/test1/paltest_getmodulefilenamew_test1")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = GetModuleFileNameW
-Name = Positive test for GetModuleFileNameW API
-TYPE = DEFAULT
-EXE1 = getmodulefilenamew
-Description
-=Test the GetModuleFileNameW to retrieve the specified module
-=full path and file name in UNICODE
+++ /dev/null
-set(SOURCES
- GetModuleFileNameW.cpp
-)
-
-add_executable(paltest_getmodulefilenamew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getmodulefilenamew_test2 coreclrpal)
-
-target_link_libraries(paltest_getmodulefilenamew_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define MODULENAMEBUFFERSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_GetModuleFileNameW_test2_paltest_getmodulefilenamew_test2, "filemapping_memmgt/GetModuleFileNameW/test2/paltest_getmodulefilenamew_test2")
{
DWORD ModuleNameLength;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = GetModuleFileNameW
-Name = Positive test for GetModuleFileNameW API
-TYPE = DEFAULT
-EXE1 = getmodulefilenamew
-Description
-=Test the GetModuleFileNameW to retrieve current process full
-=full path and file name by passing a NULL module handle in UNICODE
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
- testlib.cpp
-)
-
-add_executable(paltest_getprocaddress_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getprocaddress_test1 coreclrpal)
-
-target_link_libraries(paltest_getprocaddress_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define lpModuleName "testlib.dll"
#endif
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_GetProcAddress_test1_paltest_getprocaddress_test1, "filemapping_memmgt/GetProcAddress/test1/paltest_getprocaddress_test1")
{
int err;
HMODULE hModule;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = filemapping_memmgt
-Function = getprocaddress
-Name = Positive test for GetProcAddress API
-TYPE = DEFAULT
-EXE1 = test1
-LIB1 = testlib
-Description
-=Positive test the GetProcAddress API.
-=The first test calls GetProcAddress to retrieve the
-=address of strcpy by its name, then calls the function and
-=checks that it worked. The second part of the test
-=calls GetProcAddress to retrieve the address of
-=strcpy by its ordinal, then calls the function and
-=checks that it worked.
+++ /dev/null
-set(SOURCES
- test2.cpp
- testlib.cpp
-)
-
-add_executable(paltest_getprocaddress_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getprocaddress_test2 coreclrpal)
-
-target_link_libraries(paltest_getprocaddress_test2
- ${COMMON_TEST_LIBRARIES}
-)
/**
* main
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_GetProcAddress_test2_paltest_getprocaddress_test2, "filemapping_memmgt/GetProcAddress/test2/paltest_getprocaddress_test2")
{
int err;
HMODULE hModule;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = filemapping_memmgt
-Function = getprocaddress
-Name = Negative test for GetProcAddress API
-TYPE = DEFAULT
-EXE1 = test2
-LIB1 = testlib
-Description
-=This test tries to call GetProcAddress with
-=a NULL handle, with a NULL function name, with an empty
-=function name, with an invalid name and with an
-=nvalid ordinal value.
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- LocalAlloc.cpp
-)
-
-add_executable(paltest_localalloc_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_localalloc_test1 coreclrpal)
-
-target_link_libraries(paltest_localalloc_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_LocalAlloc_test1_paltest_localalloc_test1, "filemapping_memmgt/LocalAlloc/test1/paltest_localalloc_test1")
{
HLOCAL LocalHeap;
HLOCAL FreeHeap;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = LocalAlloc
-Name = Positive test LocalAlloc API to Allocate the specified number of bytes from the heap
-TYPE = DEFAULT
-EXE1 = localalloc
-Description
-=Test the LocalAlloc with zero ad allocation attribute
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- LocalFree.cpp
-)
-
-add_executable(paltest_localfree_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_localfree_test1 coreclrpal)
-
-target_link_libraries(paltest_localfree_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_LocalFree_test1_paltest_localfree_test1, "filemapping_memmgt/LocalFree/test1/paltest_localfree_test1")
{
HLOCAL LocalHeap;
HLOCAL FreeHeap;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = LocalFree
-Name = Positive test LocalFree API to free a specified local memory object
-TYPE = DEFAULT
-EXE1 = localfree
-Description
-=Test the LocalFree to free a specified local memory object
+++ /dev/null
-set(SOURCES
- LocalFree.cpp
-)
-
-add_executable(paltest_localfree_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_localfree_test2 coreclrpal)
-
-target_link_libraries(paltest_localfree_test2
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_LocalFree_test2_paltest_localfree_test2, "filemapping_memmgt/LocalFree/test2/paltest_localfree_test2")
{
HLOCAL FreeHeap;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = LocalFree
-Name = Positive test LocalFree API by passing NULL as local memory object handle
-TYPE = DEFAULT
-EXE1 = localfree
-Description
-=Test the LocalFree by passing NULL
-=as a local memory object handle
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-
+++ /dev/null
-set(SOURCES
- MapViewOfFile.cpp
-)
-
-add_executable(paltest_mapviewoffile_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_mapviewoffile_test1 coreclrpal)
-
-target_link_libraries(paltest_mapviewoffile_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define TEMP_DIRECTORY_PATH "/data/local/tmp/"
#endif
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_MapViewOfFile_test1_paltest_mapviewoffile_test1, "filemapping_memmgt/MapViewOfFile/test1/paltest_mapviewoffile_test1")
{
HANDLE hFile = INVALID_HANDLE_VALUE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = MapViewOfFile
-Name = Positive test MapViewOfFile API with access FILE_MAP_READ
-TYPE = DEFAULT
-EXE1 = mapviewoffile
-Description
-=Test the MapViewOfFile with access FILE_MAP_READ
+++ /dev/null
-set(SOURCES
- MapViewOfFile.cpp
-)
-
-add_executable(paltest_mapviewoffile_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_mapviewoffile_test2 coreclrpal)
-
-target_link_libraries(paltest_mapviewoffile_test2
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_MapViewOfFile_test2_paltest_mapviewoffile_test2, "filemapping_memmgt/MapViewOfFile/test2/paltest_mapviewoffile_test2")
{
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = MapViewOfFile
-Name = Positive test for MapViewOfFile API with access FILE_MAP_WRITE
-TYPE = DEFAULT
-EXE1 = mapviewoffile
-Description
-=Test the MapViewOfFile with access FILE_MAP_WRITE
+++ /dev/null
-set(SOURCES
- MapViewOfFile.cpp
-)
-
-add_executable(paltest_mapviewoffile_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_mapviewoffile_test3 coreclrpal)
-
-target_link_libraries(paltest_mapviewoffile_test3
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_MapViewOfFile_test3_paltest_mapviewoffile_test3, "filemapping_memmgt/MapViewOfFile/test3/paltest_mapviewoffile_test3")
{
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = MapViewOfFile
-Name = Positive test MapViewOfFile API with access FILE_MAP_ALL_ACCESS
-TYPE = DEFAULT
-EXE1 = mapviewoffile
-Description
-=Test the MapViewOfFile with access FILE_MAP_ALL_ACCESS
+++ /dev/null
-set(SOURCES
- mapviewoffile.cpp
-)
-
-add_executable(paltest_mapviewoffile_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_mapviewoffile_test4 coreclrpal)
-
-target_link_libraries(paltest_mapviewoffile_test4
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_MapViewOfFile_test4_paltest_mapviewoffile_test4, "filemapping_memmgt/MapViewOfFile/test4/paltest_mapviewoffile_test4")
{
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = MapViewOfFile
-Name = Negative test MapViewOfFile API
-TYPE = DEFAULT
-EXE1 = mapviewoffile
-Description
-= Negative test the MapViewOfFile API.
-= Call MapViewOfFile with all access modes,
-= except read-only, on a read only map.
+++ /dev/null
-set(SOURCES
- mapviewoffile.cpp
-)
-
-add_executable(paltest_mapviewoffile_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_mapviewoffile_test5 coreclrpal)
-
-target_link_libraries(paltest_mapviewoffile_test5
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_MapViewOfFile_test5_paltest_mapviewoffile_test5, "filemapping_memmgt/MapViewOfFile/test5/paltest_mapviewoffile_test5")
{
const int MAPPINGSIZE = 2048;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = MapViewOfFile
-Name = Negative test for MapViewOfFile API.
-TYPE = DEFAULT
-EXE1 = mapviewoffile
-Description
-= Negative test the MapViewOfFile API.
-= Passing invalid values for the hFileMappingObject.
+++ /dev/null
-set(SOURCES
- mapviewoffile.cpp
-)
-
-add_executable(paltest_mapviewoffile_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_mapviewoffile_test6 coreclrpal)
-
-target_link_libraries(paltest_mapviewoffile_test6
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_MapViewOfFile_test6_paltest_mapviewoffile_test6, "filemapping_memmgt/MapViewOfFile/test6/paltest_mapviewoffile_test6")
{
const int MAPPINGSIZE = 2048;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = MapViewOfFile
-Name = Positive test for MapViewOfFile API.
-TYPE = DEFAULT
-EXE1 = mapviewoffile
-Description
-= Positive test the MapViewOfFile API.
-= Mapping in a section of anonymous pagefile
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- OpenFileMappingW.cpp
-)
-
-add_executable(paltest_openfilemappingw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_openfilemappingw_test1 coreclrpal)
-
-target_link_libraries(paltest_openfilemappingw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_OpenFileMappingW_test1_paltest_openfilemappingw_test1, "filemapping_memmgt/OpenFileMappingW/test1/paltest_openfilemappingw_test1")
{
HANDLE lpMapViewAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = OpenFileMappingW
-Name = Positive test for OpenFileMappingW API
-TYPE = DEFAULT
-EXE1 = openfilemappingw
-Description
-=Test the OpenFileMappingW with FILE_MAP_ALL_ACCESS access
+++ /dev/null
-set(SOURCES
- OpenFileMappingW.cpp
-)
-
-add_executable(paltest_openfilemappingw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_openfilemappingw_test2 coreclrpal)
-
-target_link_libraries(paltest_openfilemappingw_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_OpenFileMappingW_test2_paltest_openfilemappingw_test2, "filemapping_memmgt/OpenFileMappingW/test2/paltest_openfilemappingw_test2")
{
HANDLE FileMappingHandle;
HANDLE OpenFileMappingHandle;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = OpenFileMappingW
-Name = Positive test for OpenFileMappingW API
-TYPE = DEFAULT
-EXE1 = openfilemappingw
-Description
-=Test the OpenFileMappingW with FILE_MAP_WRITE access
+++ /dev/null
-set(SOURCES
- OpenFileMappingW.cpp
-)
-
-add_executable(paltest_openfilemappingw_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_openfilemappingw_test3 coreclrpal)
-
-target_link_libraries(paltest_openfilemappingw_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_OpenFileMappingW_test3_paltest_openfilemappingw_test3, "filemapping_memmgt/OpenFileMappingW/test3/paltest_openfilemappingw_test3")
{
char buf[] = "this is a test";
char ch[1024];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = OpenFileMappingW
-Name = Positive test for OpenFileMappingW API with FILE_MAP_READ access
-TYPE = DEFAULT
-EXE1 = openfilemappingw
-Description
-=Test the OpenFileMappingW with FILE_MAP_READ access
+++ /dev/null
-add_subdirectory(ProbeMemory_neg1)
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- ProbeMemory_neg.cpp
-)
-
-add_executable(paltest_probememory_probememory_neg1
- ${SOURCES}
-)
-
-add_dependencies(paltest_probememory_probememory_neg1 coreclrpal)
-
-target_link_libraries(paltest_probememory_probememory_neg1
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_ProbeMemory_ProbeMemory_neg1_paltest_probememory_probememory_neg1, "filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/paltest_probememory_probememory_neg1")
{
int err;
BOOL bResult;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = PAL_ProbeMemory
-Name = Negative test PAL_ProbeMemory API to read unreadable memory area
-TYPE = DEFAULT
-EXE1 = probememory_neg
-Description
-=Test the PAL_ProbeMemory to read unreadable memory area
+++ /dev/null
-set(SOURCES
- ProbeMemory.cpp
-)
-
-add_executable(paltest_probememory_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_probememory_test1 coreclrpal)
-
-target_link_libraries(paltest_probememory_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_ProbeMemory_test1_paltest_probememory_test1, "filemapping_memmgt/ProbeMemory/test1/paltest_probememory_test1")
{
int err;
BOOL bResult;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = PAL_ProbeMemory
-Name = Positive test for PAL_ProbeMemory API to probe for read/write
-TYPE = DEFAULT
-EXE1 = probememory
-Description
-=Test the PAL_ProbeMemory to probe for read and write
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- UnmapViewOfFile.cpp
-)
-
-add_executable(paltest_unmapviewoffile_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_unmapviewoffile_test1 coreclrpal)
-
-target_link_libraries(paltest_unmapviewoffile_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_UnmapViewOfFile_test1_paltest_unmapviewoffile_test1, "filemapping_memmgt/UnmapViewOfFile/test1/paltest_unmapviewoffile_test1")
{
const int MappingSize = 2048;
HANDLE hFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = UnmapViewOfFile
-Name = Positive test UnmapViewOfFile API to unmap a view of file
-TYPE = DEFAULT
-EXE1 = unmapviewoffile
-LANG = cpp
-Description
-= Test the UnmapViewOfFile to unmap a view of file.
+++ /dev/null
-set(SOURCES
- unmapviewoffile.cpp
-)
-
-add_executable(paltest_unmapviewoffile_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_unmapviewoffile_test2 coreclrpal)
-
-target_link_libraries(paltest_unmapviewoffile_test2
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = UnmapViewOfFile
-Name = Negative test UnmapViewOfFile API to unmap a view of file
-TYPE = DEFAULT
-EXE1 = unmapviewoffile
-Description
-= Test the UnmapViewOfFile to unmap a view of file
-= negative test by passing a NULL mapping address.
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_UnmapViewOfFile_test2_paltest_unmapviewoffile_test2, "filemapping_memmgt/UnmapViewOfFile/test2/paltest_unmapviewoffile_test2")
{
int err;
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test13)
-add_subdirectory(test14)
-add_subdirectory(test15)
-add_subdirectory(test16)
-add_subdirectory(test17)
-add_subdirectory(test18)
-add_subdirectory(test19)
-add_subdirectory(test2)
-add_subdirectory(test20)
-add_subdirectory(test21)
-add_subdirectory(test22)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-add_subdirectory(test9)
-
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test1 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test1_paltest_virtualalloc_test1, "filemapping_memmgt/VirtualAlloc/test1/paltest_virtualalloc_test1")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_READONLY access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test10 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test10
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test10_paltest_virtualalloc_test10, "filemapping_memmgt/VirtualAlloc/test10/paltest_virtualalloc_test10")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_RESERVE allocation type
-=and PAGE_EXECUTE_READ access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test11
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test11 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test11
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test11_paltest_virtualalloc_test11, "filemapping_memmgt/VirtualAlloc/test11/paltest_virtualalloc_test11")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_RESERVE allocation type
-=and PAGE_EXECUTE_READWRITE access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test12 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test12
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test12_paltest_virtualalloc_test12, "filemapping_memmgt/VirtualAlloc/test12/paltest_virtualalloc_test12")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_NOACCESS access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test13
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test13 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test13
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test13_paltest_virtualalloc_test13, "filemapping_memmgt/VirtualAlloc/test13/paltest_virtualalloc_test13")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT|MEM_TOP_DOWN allocation type
-=and PAGE_READONLY access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test14
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test14 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test14
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test14_paltest_virtualalloc_test14, "filemapping_memmgt/VirtualAlloc/test14/paltest_virtualalloc_test14")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT|MEM_TOP_DOWN allocation type
-=and PAGE_READWRITE access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test15
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test15 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test15
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test15_paltest_virtualalloc_test15, "filemapping_memmgt/VirtualAlloc/test15/paltest_virtualalloc_test15")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT|MEM_TOP_DOWN allocation type
-=and PAGE_EXECUTE access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test16
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test16 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test16
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test16_paltest_virtualalloc_test16, "filemapping_memmgt/VirtualAlloc/test16/paltest_virtualalloc_test16")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT|MEM_TOP_DOWN allocation type
-=and PAGE_EXECUTE_READ access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test17
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test17 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test17
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test17_paltest_virtualalloc_test17, "filemapping_memmgt/VirtualAlloc/test17/paltest_virtualalloc_test17")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT|MEM_TOP_DOWN allocation type
-=and PAGE_EXECUTE_READWRITE access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test18
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test18 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test18
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test18_paltest_virtualalloc_test18, "filemapping_memmgt/VirtualAlloc/test18/paltest_virtualalloc_test18")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT|MEM_TOP_DOWN allocation type
-=and PAGE_NOACCESS access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test19
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test19 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test19
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test19_paltest_virtualalloc_test19, "filemapping_memmgt/VirtualAlloc/test19/paltest_virtualalloc_test19")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc to reserve and commit
-=simultaneously by using MEM_COMMIT|MEM_RESERVE|MEM_TOP_DOWN
-=allocation type and PAGE_READONLY access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test2 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test2
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test2_paltest_virtualalloc_test2, "filemapping_memmgt/VirtualAlloc/test2/paltest_virtualalloc_test2")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_READWRITE access protection
+++ /dev/null
-set(SOURCES
- virtualalloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test20
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test20 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test20
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test VirtualAlloc to ensure that re-committed memory is not changed.
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test20_paltest_virtualalloc_test20, "filemapping_memmgt/VirtualAlloc/test20/paltest_virtualalloc_test20")
{
int err;
int *ptr;
+++ /dev/null
-set(SOURCES
- virtualalloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test21
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test21 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test21
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test VirtualAlloc to ensure that freed memory that is committed again is zeroed.
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test21_paltest_virtualalloc_test21, "filemapping_memmgt/VirtualAlloc/test21/paltest_virtualalloc_test21")
{
int err;
int *ptr;
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test22
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test22 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test22
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test22_paltest_virtualalloc_test22, "filemapping_memmgt/VirtualAlloc/test22/paltest_virtualalloc_test22")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Negative test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_READWRITEaccess protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test3 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test3
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test3_paltest_virtualalloc_test3, "filemapping_memmgt/VirtualAlloc/test3/paltest_virtualalloc_test3")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_EXECUTE access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test4 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test4
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test4_paltest_virtualalloc_test4, "filemapping_memmgt/VirtualAlloc/test4/paltest_virtualalloc_test4")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_EXECUTE_READ access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test5 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test5
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test5_paltest_virtualalloc_test5, "filemapping_memmgt/VirtualAlloc/test5/paltest_virtualalloc_test5")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_EXECUTE_READWRITE access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test6 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test6
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test6_paltest_virtualalloc_test6, "filemapping_memmgt/VirtualAlloc/test6/paltest_virtualalloc_test6")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_COMMIT allocation type
-=and PAGE_NOACCESS access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test7 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test7
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test7_paltest_virtualalloc_test7, "filemapping_memmgt/VirtualAlloc/test7/paltest_virtualalloc_test7")
{
int err;
LPVOID lpVirtualAddress;
if(NULL == lpVirtualAddress)
{
Fail("\nFailed to call VirtualAlloc API!\n");
- PAL_Terminate();
+ PAL_TerminateEx(1);
return 1;
}
if(0 == err)
{
Fail("\nFailed to call VirtualFree API!\n");
- PAL_Terminate();
+ PAL_TerminateEx(1);
return 1;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_RESERVE allocation type
-=and PAGE_READONLY access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test8 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test8
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test8_paltest_virtualalloc_test8, "filemapping_memmgt/VirtualAlloc/test8/paltest_virtualalloc_test8")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_RESERVE allocation type
-=and PAGE_READWRITE access protection
+++ /dev/null
-set(SOURCES
- VirtualAlloc.cpp
-)
-
-add_executable(paltest_virtualalloc_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualalloc_test9 coreclrpal)
-
-target_link_libraries(paltest_virtualalloc_test9
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualAlloc_test9_paltest_virtualalloc_test9, "filemapping_memmgt/VirtualAlloc/test9/paltest_virtualalloc_test9")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualAlloc
-Name = Positive test for VirtualAlloc API
-TYPE = DEFAULT
-EXE1 = virtualalloc
-Description
-=Test the VirtualAlloc with MEM_RESERVE allocation type
-=and PAGE_EXECUTE access protection
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- VirtualFree.cpp
-)
-
-add_executable(paltest_virtualfree_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualfree_test1 coreclrpal)
-
-target_link_libraries(paltest_virtualfree_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualFree_test1_paltest_virtualfree_test1, "filemapping_memmgt/VirtualFree/test1/paltest_virtualfree_test1")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualFree
-Name = Positive test for VirtualFree API
-TYPE = DEFAULT
-EXE1 = virtualfree
-Description
-=Test the VirtualFree with MEM_DECOMMIT free
-=operation type
+++ /dev/null
-set(SOURCES
- VirtualFree.cpp
-)
-
-add_executable(paltest_virtualfree_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualfree_test2 coreclrpal)
-
-target_link_libraries(paltest_virtualfree_test2
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualFree_test2_paltest_virtualfree_test2, "filemapping_memmgt/VirtualFree/test2/paltest_virtualfree_test2")
{
int err;
LPVOID lpVirtualAddress;
if(NULL == lpVirtualAddress)
{
Fail("\nFailed to call VirtualAlloc API!\n");
- PAL_Terminate();
+ PAL_TerminateEx(1);
return 1;
}
if(0 == err)
{
Fail("\nFailed to call VirtualFree API!\n");
- PAL_Terminate();
+ PAL_TerminateEx(1);
return 1;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualFree
-Name = Positive test for VirtualFree API
-TYPE = DEFAULT
-EXE1 = virtualfree
-Description
-=Test the VirtualFree with MEM_RELEASE free
-=operation type
+++ /dev/null
-set(SOURCES
- VirtualFree.cpp
-)
-
-add_executable(paltest_virtualfree_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualfree_test3 coreclrpal)
-
-target_link_libraries(paltest_virtualfree_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define VIRTUALSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualFree_test3_paltest_virtualfree_test3, "filemapping_memmgt/VirtualFree/test3/paltest_virtualfree_test3")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualFree
-Name = Positive test for VirtualFree API
-TYPE = DEFAULT
-EXE1 = virtualfree
-Description
-=Test the VirtualFree with MEM_DECOMMIT|MEM_RELEASE free
-=operation type
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test6)
-add_subdirectory(test7)
-
+++ /dev/null
-set(SOURCES
- VirtualProtect.cpp
-)
-
-add_executable(paltest_virtualprotect_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualprotect_test1 coreclrpal)
-
-target_link_libraries(paltest_virtualprotect_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualProtect_test1_paltest_virtualprotect_test1, "filemapping_memmgt/VirtualProtect/test1/paltest_virtualprotect_test1")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualProtect
-Name = Positive test for VirtualProtect - with PAGE_READWRITE
-TYPE = DEFAULT
-EXE1 = virtualprotect
-Description
-=Test the VirtualProtect to set new access protection
-=as PAGE_READWRITE
+++ /dev/null
-set(SOURCES
- VirtualProtect.cpp
-)
-
-add_executable(paltest_virtualprotect_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualprotect_test2 coreclrpal)
-
-target_link_libraries(paltest_virtualprotect_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualProtect_test2_paltest_virtualprotect_test2, "filemapping_memmgt/VirtualProtect/test2/paltest_virtualprotect_test2")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualProtect
-Name = Positive test for VirtualProtect - with PAGE_EXECUTE
-TYPE = DEFAULT
-EXE1 = virtualprotect
-Description
-=Test the VirtualProtect to set new access protection
-=as PAGE_EXECUTE
+++ /dev/null
-set(SOURCES
- VirtualProtect.cpp
-)
-
-add_executable(paltest_virtualprotect_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualprotect_test3 coreclrpal)
-
-target_link_libraries(paltest_virtualprotect_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualProtect_test3_paltest_virtualprotect_test3, "filemapping_memmgt/VirtualProtect/test3/paltest_virtualprotect_test3")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualProtect
-Name = Positive test for VirtualProtect - with PAGE_EXECUTE_READ
-TYPE = DEFAULT
-EXE1 = virtualprotect
-Description
-=Test the VirtualProtect to set new access protection
-=as PAGE_EXECUTE_READ
+++ /dev/null
-set(SOURCES
- VirtualProtect.cpp
-)
-
-add_executable(paltest_virtualprotect_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualprotect_test4 coreclrpal)
-
-target_link_libraries(paltest_virtualprotect_test4
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualProtect_test4_paltest_virtualprotect_test4, "filemapping_memmgt/VirtualProtect/test4/paltest_virtualprotect_test4")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualProtect
-Name = Positive test for VirtualProtect - with PAGE_EXECUTE_READWRITE
-TYPE = DEFAULT
-EXE1 = virtualprotect
-Description
-=Test the VirtualProtect to set new access protection
-=as PAGE_EXECUTE_READWRITE
+++ /dev/null
-set(SOURCES
- VirtualProtect.cpp
-)
-
-add_executable(paltest_virtualprotect_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualprotect_test6 coreclrpal)
-
-target_link_libraries(paltest_virtualprotect_test6
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualProtect_test6_paltest_virtualprotect_test6, "filemapping_memmgt/VirtualProtect/test6/paltest_virtualprotect_test6")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualProtect
-Name = Positive test for VirtualProtect - with PAGE_NOACCESS
-TYPE = DEFAULT
-EXE1 = virtualprotect
-Description
-=Test the VirtualProtect to set new access protection
-=as PAGE_NOACCESS
+++ /dev/null
-set(SOURCES
- VirtualProtect.cpp
-)
-
-add_executable(paltest_virtualprotect_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualprotect_test7 coreclrpal)
-
-target_link_libraries(paltest_virtualprotect_test7
- ${COMMON_TEST_LIBRARIES}
-)
#define REGIONSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualProtect_test7_paltest_virtualprotect_test7, "filemapping_memmgt/VirtualProtect/test7/paltest_virtualprotect_test7")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualProtect
-Name = Positive test for VirtualProtect - with PAGE_READONLY
-TYPE = DEFAULT
-EXE1 = virtualprotect
-Description
-=Test the VirtualProtect to set new access protection
-=as PAGE_READONLY
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- VirtualQuery.cpp
-)
-
-add_executable(paltest_virtualquery_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_virtualquery_test1 coreclrpal)
-
-target_link_libraries(paltest_virtualquery_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define VIRTUALMEMORYSIZE 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(filemapping_memmgt_VirtualQuery_test1_paltest_virtualquery_test1, "filemapping_memmgt/VirtualQuery/test1/paltest_virtualquery_test1")
{
int err;
LPVOID lpVirtualAddress;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Filemapping_memmgt
-Function = VirtualQuery
-Name = Positive test for VirtualQuery API
-TYPE = DEFAULT
-EXE1 = virtualquery
-Description
-=Test the VirtualQuery to get the virtual page info
--- /dev/null
+<?xml version="1.0" ?>
+<Project DefaultTargets = "ProducePALTestList" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!-- All OS/Arch/Runtime excludes -->
+ <ItemGroup>
+ <ExcludeList Include="file_io/GetFullPathNameA/test3/paltest_getfullpathnamea_test3">
+ <Issue>https://github.com/dotnet/runtime/issues/42289</Issue>
+ </ExcludeList>
+ </ItemGroup>
+
+ <!-- Target specific excludes -->
+ <ItemGroup Condition="'$(TargetArchitecture)' == 'arm' and '$(TargetOS)' == 'Linux'">
+ <ExcludeList Include="eventprovider/eventprovidertest">
+ <Issue>https://github.com/dotnet/runtime/issues/42291</Issue>
+ </ExcludeList>
+ </ItemGroup>
+ <ItemGroup Condition="'$(TargetArchitecture)' == 'x64' and '$(TargetOS)' == 'Linux'">
+ <ExcludeList Include="eventprovider/eventprovidertest">
+ <Issue>https://github.com/dotnet/runtime/issues/42291</Issue>
+ </ExcludeList>
+ </ItemGroup>
+ <ItemGroup Condition="'$(TargetArchitecture)' == 'arm64' and '$(TargetOS)' == 'Linux'">
+ <ExcludeList Include="eventprovider/eventprovidertest">
+ <Issue>https://github.com/dotnet/runtime/issues/42291</Issue>
+ </ExcludeList>
+ </ItemGroup>
+
+ <ItemGroup Condition="'$(TargetArchitecture)' == 'x64' and '$(TargetOS)' == 'OSX'">
+ <ExcludeList Include="miscellaneous/queryperformancecounter/test1/paltest_queryperformancecounter_test1">
+ <Issue>https://github.com/dotnet/runtime/issues/7639</Issue>
+ </ExcludeList>
+ <ExcludeList Include="exception_handling/pal_sxs/test1/paltest_pal_sxs_test1">
+ <Issue>https://github.com/dotnet/runtime/issues/42292</Issue>
+ </ExcludeList>
+ </ItemGroup>
+</Project>
+++ /dev/null
-add_subdirectory(LoadLibraryA)
-add_subdirectory(LoadLibraryW)
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test5)
-add_subdirectory(test7)
-
+++ /dev/null
-set(SOURCES
- LoadLibraryA.cpp
-)
-
-add_executable(paltest_loadlibrarya_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test1 coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define ModuleName "rotor_pal.dll"
#endif
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryA_test1_paltest_loadlibrarya_test1, "loader/LoadLibraryA/test1/paltest_loadlibrarya_test1")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryA
-Name = Positive test for LoadLibraryA API to load Dynamic library module
-TYPE = DEFAULT
-EXE1 = loadlibrarya
-Description
-=Test the LoadLibraryA to map module into calling process address space
-
+++ /dev/null
-set(SOURCES
- LoadLibraryA.cpp
-)
-
-add_executable(paltest_loadlibrarya_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test2 coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test2
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryA_test2_paltest_loadlibrarya_test2, "loader/LoadLibraryA/test2/paltest_loadlibrarya_test2")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryA
-Name = Negative test LoadLibraryA API to load a not exist module
-TYPE = DEFAULT
-EXE1 = loadlibrarya
-Description
-=Test the LoadLibraryA to load a not exist module
-
+++ /dev/null
-set(SOURCES
- loadlibrarya.cpp
-)
-
-add_executable(paltest_loadlibrarya_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test3 coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test3
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryA_test3_paltest_loadlibrarya_test3, "loader/LoadLibraryA/test3/paltest_loadlibrarya_test3")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryA
-Name = Negative test LoadLibraryA API with a NULL module name
-TYPE = DEFAULT
-EXE1 = loadlibrarya
-Description
-=Test the LoadLibraryA to map NULL module into calling
-=process address space
-
+++ /dev/null
-set(SOURCES
- loadlibrarya.cpp
-)
-
-add_executable(paltest_loadlibrarya_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test5 coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test5
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryA_test5_paltest_loadlibrarya_test5, "loader/LoadLibraryA/test5/paltest_loadlibrarya_test5")
{
HMODULE ModuleHandle;
char ModuleName[_MAX_FNAME];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryA
-Name = Negative test for LoadLibraryA API by passing a module name without extension but with a trailing dot.
-TYPE = DEFAULT
-EXE1 = loadlibrarya
-Description
-=Test the LoadLibraryA by passing a module name without extension
-=but with a trailing dot.
-
+++ /dev/null
-set(TESTSOURCES
- loadlibrarya.cpp
-)
-
-add_executable(paltest_loadlibrarya_test6
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test6 coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test6
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- dlltest.cpp
-)
-
-add_executable(paltest_loadlibrarya_test6_dlltest
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test6_dlltest coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test6_dlltest
- ${COMMON_TEST_LIBRARIES}
-)
return (TRUE);
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryA_test6_paltest_loadlibrarya_test6, "loader/LoadLibraryA/test6/paltest_loadlibrarya_test6")
{
HANDLE hFullLib;
HANDLE hShortLib;
/* Terminate the PAL.
*/
- PAL_Terminate();
+ PAL_TerminateEx(iRetVal);
return iRetVal;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryA
-Name = Positive test for LoadLibrary API
-TYPE = DEFAULT
-EXE1 = loadlibrarya
-LIB1 = dlltest
-Description
-= Positive test the LoadLibrary API. Test will verify
-= that it is unable to load the library twice. Once by
-= using the full path name and secondly by using the
-= short name.
-
+++ /dev/null
-set(SOURCES
- LoadLibraryA.cpp
-)
-
-add_executable(paltest_loadlibrarya_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test7 coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test7
- ${COMMON_TEST_LIBRARIES}
-)
#define ModuleName "rotor_pal.dll"
#endif
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryA_test7_paltest_loadlibrarya_test7, "loader/LoadLibraryA/test7/paltest_loadlibrarya_test7")
{
HMODULE ModuleHandle;
HMODULE ReturnHandle;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryA
-Name = Positive and Negative test for LoadLibraryA API to load Dynamic library module
-TYPE = DEFAULT
-EXE1 = loadlibrarya
-Description
-=Test the LoadLibraryA to load multiple times and call unload more times than load
-
+++ /dev/null
-set(TESTSOURCES
- loadlibrarya.cpp
-)
-
-add_executable(paltest_loadlibrarya_test8
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test8 coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test8
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- dlltest.cpp
-)
-
-add_executable(paltest_loadlibrarya_test8_dlltest
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_loadlibrarya_test8_dlltest coreclrpal)
-
-target_link_libraries(paltest_loadlibrarya_test8_dlltest
- ${COMMON_TEST_LIBRARIES}
-)
return (TRUE);
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryA_test8_paltest_loadlibrarya_test8, "loader/LoadLibraryA/test8/paltest_loadlibrarya_test8")
{
HANDLE hFullLib;
HANDLE hShortLib;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryA
-Name = Positive test for LoadLibrary API
-TYPE = DEFAULT
-EXE1 = loadlibrarya
-LIB1 = dlltest
-Description
-= Positive test the LoadLibrary API. Test will verify
-= that it is able to load the library thrice. Once by
-= using the full path name, second by using the
-= short name and third by using relative paths
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test5)
-
+++ /dev/null
-set(SOURCES
- LoadLibraryW.cpp
-)
-
-add_executable(paltest_loadlibraryw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibraryw_test1 coreclrpal)
-
-target_link_libraries(paltest_loadlibraryw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define ModuleName "rotor_pal.dll"
#endif
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryW_test1_paltest_loadlibraryw_test1, "loader/LoadLibraryW/test1/paltest_loadlibraryw_test1")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryW
-Name = Positive test for LoadLibraryW API to load a dynamic library module
-TYPE = DEFAULT
-EXE1 = loadlibraryw
-Description
-=Test the LoadLibraryW to map module into calling process address space
+++ /dev/null
-set(SOURCES
- loadlibraryw.cpp
-)
-
-add_executable(paltest_loadlibraryw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibraryw_test2 coreclrpal)
-
-target_link_libraries(paltest_loadlibraryw_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryW_test2_paltest_loadlibraryw_test2, "loader/LoadLibraryW/test2/paltest_loadlibraryw_test2")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryW
-Name = Negative test LoadLibraryW API to load a not exist module
-TYPE = DEFAULT
-EXE1 = loadlibraryw
-Description
-=Test the LoadLibraryW to load a not exist module
-
+++ /dev/null
-set(SOURCES
- loadlibraryw.cpp
-)
-
-add_executable(paltest_loadlibraryw_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibraryw_test3 coreclrpal)
-
-target_link_libraries(paltest_loadlibraryw_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryW_test3_paltest_loadlibraryw_test3, "loader/LoadLibraryW/test3/paltest_loadlibraryw_test3")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryW
-Name = Negative test loadlibraryw API with a NULL module name
-TYPE = DEFAULT
-EXE1 = loadlibraryw
-Description
-=Test the LoadLibraryW with a NULL module name
+++ /dev/null
-set(SOURCES
- loadlibraryw.cpp
-)
-
-add_executable(paltest_loadlibraryw_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_loadlibraryw_test5 coreclrpal)
-
-target_link_libraries(paltest_loadlibraryw_test5
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(loader_LoadLibraryW_test5_paltest_loadlibraryw_test5, "loader/LoadLibraryW/test5/paltest_loadlibraryw_test5")
{
HMODULE ModuleHandle;
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Loader
-Function = LoadLibraryw
-Name = Negative test for LoadLibraryW API by passing a module name without extension but with a trailing dot.
-TYPE = DEFAULT
-EXE1 = loadlibraryw
-Description
-=Test the LoadLibraryW by passing a module name without extension
-=but with a trailing dot.
-
+++ /dev/null
-# TODO: make the following tests compile if they are needed
-# add_subdirectory(CompareStringA)
-# add_subdirectory(CompareStringW)
-# add_subdirectory(GetLocaleInfoW)
-
-add_subdirectory(GetACP)
-add_subdirectory(MultiByteToWideChar)
-add_subdirectory(WideCharToMultiByte)
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_comparestringa_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_comparestringa_test1 coreclrpal)
-
-target_link_libraries(paltest_comparestringa_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_CompareStringA_test1_paltest_comparestringa_test1, "locale_info/CompareStringA/test1/paltest_comparestringa_test1")
{
char str1[] = {'f','o','o',0};
char str2[] = {'f','o','o','x',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = CompareStringA
-Name = Test #1 for CompareStringA
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that CompareStringA returns the correct value and can handle
-=invalid parameters.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_comparestringw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_comparestringw_test1 coreclrpal)
-
-target_link_libraries(paltest_comparestringw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_CompareStringW_test1_paltest_comparestringw_test1, "locale_info/CompareStringW/test1/paltest_comparestringw_test1")
{
WCHAR str1[] = {'f','o','o',0};
WCHAR str2[] = {'f','o','o','x',0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = CompareStringW
-Name = Test #1 for CompareStringW
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that CompareStringW returns the correct value and can handle
-=invalid parameters.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_getacp_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getacp_test1 coreclrpal)
-
-target_link_libraries(paltest_getacp_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define EXPECTED_CP 65001
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_GetACP_test1_paltest_getacp_test1, "locale_info/GetACP/test1/paltest_getacp_test1")
{
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = GetACP
-Name = Test #1 for GetACP
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that GetACP returns code-page 1252.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_getlocaleinfow_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getlocaleinfow_test1 coreclrpal)
-
-target_link_libraries(paltest_getlocaleinfow_test1
- ${COMMON_TEST_LIBRARIES}
-)
int NumLocales = sizeof(Locales) / sizeof(Locales[0]);
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_GetLocaleInfoW_test1_paltest_getlocaleinfow_test1, "locale_info/GetLocaleInfoW/test1/paltest_getlocaleinfow_test1")
{
WCHAR buffer[256] = { 0 };
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = GetLocaleInfoW
-Name = Test #1 for GetLocaleInfoW
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that GetLocaleInfoW gives the correction information for LOCALE_NEUTRAL
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_getlocaleinfow_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getlocaleinfow_test2 coreclrpal)
-
-target_link_libraries(paltest_getlocaleinfow_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_GetLocaleInfoW_test2_paltest_getlocaleinfow_test2, "locale_info/GetLocaleInfoW/test2/paltest_getlocaleinfow_test2")
{
WCHAR buffer[256] = { 0 };
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = GetLocaleInfoW
-Name = Test #2 for GetLocaleInfoW
-TYPE = DEFAULT
-EXE1 = test2
-Description
-=Tests that GetLocaleInfoW will correctly return the amount of
-=buffer space required. Also tests that it correctly handles a
-=buffer of insufficient space.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_multibytetowidechar_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_multibytetowidechar_test1 coreclrpal)
-
-target_link_libraries(paltest_multibytetowidechar_test1
- ${COMMON_TEST_LIBRARIES}
-)
* with CP_ACP, and that dwFlags will be 0.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_MultiByteToWideChar_test1_paltest_multibytetowidechar_test1, "locale_info/MultiByteToWideChar/test1/paltest_multibytetowidechar_test1")
{
char mbStr[128];
WCHAR wideStr[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = MultiByteToWideChar
-Name = Test #1 for MultiByteToWideChar
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests MultiByteToWideChar with all the ASCII characters (0-127).
-=Also tests that WideCharToMultiByte handles different buffer
-=lengths correctly (0, -1, and a valid length)
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_multibytetowidechar_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_multibytetowidechar_test2 coreclrpal)
-
-target_link_libraries(paltest_multibytetowidechar_test2
- ${COMMON_TEST_LIBRARIES}
-)
* with CP_ACP, and that dwFlags will be 0.
*/
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_MultiByteToWideChar_test2_paltest_multibytetowidechar_test2, "locale_info/MultiByteToWideChar/test2/paltest_multibytetowidechar_test2")
{
char mbStr[128];
WCHAR wideStr[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = MultiByteToWideChar
-Name = Test #2 for MultiByteToWideChar
-TYPE = DEFAULT
-EXE1 = test2
-Description
-=Tests that MultiByteToWideChar respects the length of the wide
-=character string.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_multibytetowidechar_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_multibytetowidechar_test3 coreclrpal)
-
-target_link_libraries(paltest_multibytetowidechar_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_MultiByteToWideChar_test3_paltest_multibytetowidechar_test3, "locale_info/MultiByteToWideChar/test3/paltest_multibytetowidechar_test3")
{
char mbStr[128];
WCHAR wideStr[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = MultiByteToWideChar
-Name = Test #3 for MultiByteToWideChar
-TYPE = DEFAULT
-EXE1 = test3
-Description
-=Tests that MultiByteToWideChar correctly handles the following
-=error conditions: insufficient buffer space, invalid code pages,
-=and invalid flags.
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_multibytetowidechar_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_multibytetowidechar_test4 coreclrpal)
-
-target_link_libraries(paltest_multibytetowidechar_test4
- ${COMMON_TEST_LIBRARIES}
-)
\ No newline at end of file
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_MultiByteToWideChar_test4_paltest_multibytetowidechar_test4, "locale_info/MultiByteToWideChar/test4/paltest_multibytetowidechar_test4")
{
int ret;
int ret2;
+++ /dev/null
-#
-# Copyright (c) Microsoft Corporation. All rights reserved.
-#
-
-Version = 1.0
-Section = Locale Information
-Function = MultiByteToWideChar
-Name = Test #4 for MultiByteToWideChar
-TYPE = DEFAULT
-EXE1 = test4
-Description
-=Tests MultiByteToWideChar with UTF-8 encoded strings
-=containing various corner cases
\ No newline at end of file
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_widechartomultibyte_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_widechartomultibyte_test1 coreclrpal)
-
-target_link_libraries(paltest_widechartomultibyte_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_WideCharToMultiByte_test1_paltest_widechartomultibyte_test1, "locale_info/WideCharToMultiByte/test1/paltest_widechartomultibyte_test1")
{
char mbStr[128];
WCHAR wideStr[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = WideCharToMultiByte
-Name = Test #1 for WideCharToMultiByte
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests WideCharToMultiByte with all the ASCII characters (0-127).
-=Also tests that WideCharToMultiByte handles different buffer
-=lengths correctly (0, -1, and a valid length)
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_widechartomultibyte_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_widechartomultibyte_test2 coreclrpal)
-
-target_link_libraries(paltest_widechartomultibyte_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_WideCharToMultiByte_test2_paltest_widechartomultibyte_test2, "locale_info/WideCharToMultiByte/test2/paltest_widechartomultibyte_test2")
{
char mbStr[128];
WCHAR wideStr[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = WideCharToMultiByte
-Name = Test #2 for WideCharToMultiByte
-TYPE = DEFAULT
-EXE1 = test2
-Description
-=Tests that WideCharToMultiByte respects the length of the wide
-=character string.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_widechartomultibyte_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_widechartomultibyte_test3 coreclrpal)
-
-target_link_libraries(paltest_widechartomultibyte_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_WideCharToMultiByte_test3_paltest_widechartomultibyte_test3, "locale_info/WideCharToMultiByte/test3/paltest_widechartomultibyte_test3")
{
char mbStr[128];
WCHAR wideStr[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = WideCharToMultiByte
-Name = Test #3 for WideCharToMultiByte
-TYPE = DEFAULT
-EXE1 = test3
-Description
-=Tests that WideCharToMultiByte correctly handles the following
-=error conditions: insufficient buffer space and invalid code pages.
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_widechartomultibyte_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_widechartomultibyte_test4 coreclrpal)
-
-target_link_libraries(paltest_widechartomultibyte_test4
- ${COMMON_TEST_LIBRARIES}
-)
return testStatus;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_WideCharToMultiByte_test4_paltest_widechartomultibyte_test4, "locale_info/WideCharToMultiByte/test4/paltest_widechartomultibyte_test4")
{
int testStatus = PASS;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Locale Information
-Function = WideCharToMultiByte
-Name = Test #4 for WideCharToMultiByte
-TYPE = DEFAULT
-EXE1 = test4
-Description
-=Tests that WideCharToMultiByte correctly handles WC_NO_BEST_FIT_CHARS
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_widechartomultibyte_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_widechartomultibyte_test5 coreclrpal)
-
-target_link_libraries(paltest_widechartomultibyte_test5
- ${COMMON_TEST_LIBRARIES}
-)
\ No newline at end of file
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(locale_info_WideCharToMultiByte_test5_paltest_widechartomultibyte_test5, "locale_info/WideCharToMultiByte/test5/paltest_widechartomultibyte_test5")
{
int ret;
int ret2;
+++ /dev/null
-#
-# Copyright (c) Microsoft Corporation. All rights reserved.
-#
-
-Version = 1.0
-Section = Locale Information
-Function = WideCharToMultiByte
-Name = Test #5 for WideCharToMultiByte
-TYPE = DEFAULT
-EXE1 = test5
-Description
-=Tests WideCharToMultiByte conversion to UTF-8
-=containing various corner cases
\ No newline at end of file
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_cgroup_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_cgroup_test1 coreclrpal)
-
-target_link_libraries(paltest_cgroup_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc,char *argv[])
+PALTEST(miscellaneous_CGroup_test1_paltest_cgroup_test1, "miscellaneous/CGroup/test1/paltest_cgroup_test1")
{
/*
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = CGroup
-Name = Positive Test for CGroup
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if Cgroup memory limit works properly
+++ /dev/null
-add_subdirectory(CGroup)
-add_subdirectory(CloseHandle)
-add_subdirectory(CreatePipe)
-add_subdirectory(FlushInstructionCache)
-add_subdirectory(FormatMessageW)
-add_subdirectory(FreeEnvironmentStringsW)
-add_subdirectory(GetCommandLineW)
-add_subdirectory(GetEnvironmentStringsW)
-add_subdirectory(GetEnvironmentVariableA)
-add_subdirectory(GetEnvironmentVariableW)
-add_subdirectory(GetLastError)
-add_subdirectory(GetSystemInfo)
-add_subdirectory(GlobalMemoryStatusEx)
-add_subdirectory(GetTickCount)
-add_subdirectory(InterlockedBit)
-add_subdirectory(InterlockedCompareExchange)
-add_subdirectory(InterlockedCompareExchange64)
-add_subdirectory(InterlockedCompareExchangePointer)
-add_subdirectory(InterlockedDecrement)
-add_subdirectory(InterlockedDecrement64)
-add_subdirectory(InterlockedExchange)
-add_subdirectory(InterlockedExchange64)
-add_subdirectory(InterLockedExchangeAdd)
-add_subdirectory(InterlockedExchangePointer)
-add_subdirectory(InterlockedIncrement)
-add_subdirectory(InterlockedIncrement64)
-add_subdirectory(queryperformancecounter)
-add_subdirectory(queryperformancefrequency)
-add_subdirectory(SetEnvironmentVariableA)
-add_subdirectory(SetEnvironmentVariableW)
-add_subdirectory(SetLastError)
-add_subdirectory(_i64tow)
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_charnexta_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_charnexta_test1 coreclrpal)
-
-target_link_libraries(paltest_charnexta_test1
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_charnexta_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_charnexta_test2 coreclrpal)
-
-target_link_libraries(paltest_charnexta_test2
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_charnextexa_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_charnextexa_test1 coreclrpal)
-
-target_link_libraries(paltest_charnextexa_test1
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_charnextexa_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_charnextexa_test2 coreclrpal)
-
-target_link_libraries(paltest_charnextexa_test2
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_closehandle_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_closehandle_test1 coreclrpal)
-
-target_link_libraries(paltest_closehandle_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_CloseHandle_test1_paltest_closehandle_test1, "miscellaneous/CloseHandle/test1/paltest_closehandle_test1")
{
HANDLE FileHandle = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = CloseHandle
-Name = Positive Test for CloseHandle
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Open a file to get a handle, and then close the file using CloseHandle
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_closehandle_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_closehandle_test2 coreclrpal)
-
-target_link_libraries(paltest_closehandle_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_CloseHandle_test2_paltest_closehandle_test2, "miscellaneous/CloseHandle/test2/paltest_closehandle_test2")
{
HANDLE SomeHandle = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = CloseHandle
-Name = Positive Test for CloseHandle
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Attempt to close an unintialized HANDLE, should be unable to do this.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_createpipe_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createpipe_test1 coreclrpal)
-
-target_link_libraries(paltest_createpipe_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* cTestString = "one fish, two fish, red fish, blue fish.";
+#define cTestString "one fish, two fish, read fish, blue fish."
-int __cdecl main(int argc, char **argv)
+PALTEST(miscellaneous_CreatePipe_test1_paltest_createpipe_test1, "miscellaneous/CreatePipe/test1/paltest_createpipe_test1")
{
HANDLE hReadPipe = NULL;
HANDLE hWritePipe = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = CreatePipe
-Name = Test for CreatePipe
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the CreatePipe function.
-= This test will create two pipes, a read and a write. Once
-= the pipes have been created, they will be tested by writing
-= and then reading, then comparing the results.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_flushinstructioncache_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_flushinstructioncache_test1 coreclrpal)
-
-target_link_libraries(paltest_flushinstructioncache_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc,char *argv[])
+PALTEST(miscellaneous_FlushInstructionCache_test1_paltest_flushinstructioncache_test1, "miscellaneous/FlushInstructionCache/test1/paltest_flushinstructioncache_test1")
{
char ValidPtr[256];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FlushInstructionCache
-Name = Positive Test #1 for FlushInstructionCache
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that FlushInstructionCache returns the correct value for a
-=number of different inputs.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_formatmessagew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_formatmessagew_test1 coreclrpal)
-
-target_link_libraries(paltest_formatmessagew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_FormatMessageW_test1_paltest_formatmessagew_test1, "miscellaneous/FormatMessageW/test1/paltest_formatmessagew_test1")
+{
WCHAR TheString[] = {'P','a','l',' ','T','e','s','t','\0'};
WCHAR OutBuffer[128];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FormatMessageW
-Name = Positive test of FormatMessageW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test a very simple case -- basically just copy a string into a buffer,
-= no formatting.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_formatmessagew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_formatmessagew_test2 coreclrpal)
-
-target_link_libraries(paltest_formatmessagew_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-WCHAR OutBuffer[1024];
+WCHAR OutBuffer_FormatMessageW_test2[1024];
/* Pass this test the string "INSERT" and it will succeed */
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer, convert("Pal INSERT Testing"),
- wcslen(OutBuffer)*2+2) != 0)
+ if(memcmp(OutBuffer_FormatMessageW_test2, convert("Pal INSERT Testing"),
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal INSERT "
"Testing' but '%s' was returned.",
- convertC(OutBuffer));
+ convertC(OutBuffer_FormatMessageW_test2));
}
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
" with the 'i' formatter.");
}
- if(memcmp(OutBuffer, convert("Pal 40 Testing"),wcslen(OutBuffer)*2+2) != 0)
+ if(memcmp(OutBuffer_FormatMessageW_test2, convert("Pal 40 Testing"),wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal 40 Testing' "
- "but '%s' was returned.", convertC(OutBuffer));
+ "but '%s' was returned.", convertC(OutBuffer_FormatMessageW_test2));
}
return PASS;
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
" with the 'c' formatter.");
}
- if(memcmp(OutBuffer, convert("Pal a Testing"),wcslen(OutBuffer)*2+2) != 0)
+ if(memcmp(OutBuffer_FormatMessageW_test2, convert("Pal a Testing"),wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal a Testing' "
- "but '%s' was returned.", convertC(OutBuffer));
+ "but '%s' was returned.", convertC(OutBuffer_FormatMessageW_test2));
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
" with the 'C' formatter.");
}
- if(memcmp(OutBuffer, convert("Pal a Testing"),wcslen(OutBuffer)*2+2) != 0)
+ if(memcmp(OutBuffer_FormatMessageW_test2, convert("Pal a Testing"),wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal a Testing' "
- "but '%s' was returned.",convertC(OutBuffer));
+ "but '%s' was returned.",convertC(OutBuffer_FormatMessageW_test2));
}
return PASS;
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer, convert("Pal 57 Testing"),wcslen(OutBuffer)*2+2) != 0)
+ if(memcmp(OutBuffer_FormatMessageW_test2, convert("Pal 57 Testing"),wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal 57 Testing' "
- "but '%s' was returned.",convertC(OutBuffer));
+ "but '%s' was returned.",convertC(OutBuffer_FormatMessageW_test2));
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer, convert("Pal a and b Testing"),
- wcslen(OutBuffer)*2+2) != 0)
+ if(memcmp(OutBuffer_FormatMessageW_test2, convert("Pal a and b Testing"),
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal a and b "
- "Testing' but '%s' was returned.", convertC(OutBuffer));
+ "Testing' but '%s' was returned.", convertC(OutBuffer_FormatMessageW_test2));
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer,
+ if(memcmp(OutBuffer_FormatMessageW_test2,
convert("Pal 90 and foo and bar Testing"),
- wcslen(OutBuffer)*2+2) != 0)
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal 90 and foo "
- "and bar Testing' but '%s' was returned.",convertC(OutBuffer));
+ "and bar Testing' but '%s' was returned.",convertC(OutBuffer_FormatMessageW_test2));
}
return PASS;
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer,
+ if(memcmp(OutBuffer_FormatMessageW_test2,
convert("Pal a and b and 50 and 100 Testing"),
- wcslen(OutBuffer)*2+2) != 0)
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal a and b and 50"
- " and 100 Testing' but '%s' was returned.",convertC(OutBuffer));
+ " and 100 Testing' but '%s' was returned.",convertC(OutBuffer_FormatMessageW_test2));
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer,
+ if(memcmp(OutBuffer_FormatMessageW_test2,
convert("Pal foo and bar and 56 Testing"),
- wcslen(OutBuffer)*2+2) != 0)
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal foo and bar "
- "and 56 Testing' but '%s' was returned.",convertC(OutBuffer));
+ "and 56 Testing' but '%s' was returned.",convertC(OutBuffer_FormatMessageW_test2));
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer,
+ if(memcmp(OutBuffer_FormatMessageW_test2,
convert("Pal 123ab and 123CD Testing"),
- wcslen(OutBuffer)*2+2) != 0)
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal 123ab and "
- "123CD Testing' but '%s' was returned.", convertC(OutBuffer));
+ "123CD Testing' but '%s' was returned.", convertC(OutBuffer_FormatMessageW_test2));
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
*/
#if defined(HOST_64BIT)
Trace("Testing for 64 Bit Platforms \n");
- if(memcmp(OutBuffer,
+ if(memcmp(OutBuffer_FormatMessageW_test2,
convert("Pal 00000000000123AB and foo Testing"),
- wcslen(OutBuffer)*2+2) != 0 &&
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0 &&
/* BSD style */
- memcmp( OutBuffer,
+ memcmp( OutBuffer_FormatMessageW_test2,
convert( "Pal 0x123ab and foo Testing" ),
- wcslen(OutBuffer)*2+2 ) != 0 )
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2 ) != 0 )
{
Fail("ERROR: The formated string should have been 'Pal 000123AB and "
- "foo Testing' but '%s' was returned.",convertC(OutBuffer));
+ "foo Testing' but '%s' was returned.",convertC(OutBuffer_FormatMessageW_test2));
}
#else
Trace("Testing for Non 64 Bit Platforms \n");
- if(memcmp(OutBuffer,
+ if(memcmp(OutBuffer_FormatMessageW_test2,
convert("Pal 000123AB and foo Testing"),
- wcslen(OutBuffer)*2+2) != 0 &&
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0 &&
/* BSD style */
- memcmp( OutBuffer,
+ memcmp( OutBuffer_FormatMessageW_test2,
convert( "Pal 0x123ab and foo Testing" ),
- wcslen(OutBuffer)*2+2 ) != 0 )
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2 ) != 0 )
{
Fail("ERROR: The formated string should have been 'Pal 000123AB and "
- "foo Testing' but '%s' was returned.",convertC(OutBuffer));
+ "foo Testing' but '%s' was returned.",convertC(OutBuffer_FormatMessageW_test2));
}
int ReturnResult;
va_list TheList;
va_start(TheList,num);
- memset( OutBuffer, 0, 1024 * sizeof(OutBuffer[0]) );
+ memset( OutBuffer_FormatMessageW_test2, 0, 1024 * sizeof(OutBuffer_FormatMessageW_test2[0]) );
ReturnResult = FormatMessage(
FORMAT_MESSAGE_FROM_STRING, /* source and processing options */
TheString, /* message source */
0, /* message identifier */
0, /* language identifier */
- OutBuffer, /* message buffer */
+ OutBuffer_FormatMessageW_test2, /* message buffer */
1024, /* maximum size of message buffer */
&TheList /* array of message inserts */
);
}
- if(memcmp(OutBuffer,
+ if(memcmp(OutBuffer_FormatMessageW_test2,
convert("Pal 100 and 123ab and 123CD Testing"),
- wcslen(OutBuffer)*2+2) != 0)
+ wcslen(OutBuffer_FormatMessageW_test2)*2+2) != 0)
{
Fail("ERROR: The formated string should have been 'Pal 100 and "
"123ab and 123CD Testing' but '%s' was returned.",
- convertC(OutBuffer));
+ convertC(OutBuffer_FormatMessageW_test2));
}
return PASS;
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_FormatMessageW_test2_paltest_formatmessagew_test2, "miscellaneous/FormatMessageW/test2/paltest_formatmessagew_test2")
{
WCHAR szwInsert[] = {'I','N','S','E','R','T','\0'};
WCHAR szwFoo[] = {'f','o','o','\0'};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FormatMessageW
-Name = Positive test of FormatMessageW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= A collection of tests to check and make sure all the standard formatters work.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_formatmessagew_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_formatmessagew_test3 coreclrpal)
-
-target_link_libraries(paltest_formatmessagew_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-WCHAR OutBuffer[1024];
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_FormatMessageW_test3_paltest_formatmessagew_test3, "miscellaneous/FormatMessageW/test3/paltest_formatmessagew_test3")
{
+ WCHAR OutBuffer[1024];
WCHAR * TheString;
WCHAR * CorrectString;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FormatMessageW
-Name = Positive test of FormatMessageW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to ensure the IGNORE_INSERTS flag works properly.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_formatmessagew_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_formatmessagew_test4 coreclrpal)
-
-target_link_libraries(paltest_formatmessagew_test4
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-WCHAR OutBuffer[1024];
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_FormatMessageW_test4_paltest_formatmessagew_test4, "miscellaneous/FormatMessageW/test4/paltest_formatmessagew_test4")
{
+ WCHAR OutBuffer[1024];
WCHAR * TheString;
WCHAR* TheArray[3];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FormatMessageW
-Name = Positive test of FormatMessageW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to ensure the FORMAT_MESSAGE_ARGUMENT_ARRAY flag works properly.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_formatmessagew_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_formatmessagew_test5 coreclrpal)
-
-target_link_libraries(paltest_formatmessagew_test5
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_FormatMessageW_test5_paltest_formatmessagew_test5, "miscellaneous/FormatMessageW/test5/paltest_formatmessagew_test5")
+{
WCHAR * TheString;
LPWSTR OutBuffer;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FormatMessageW
-Name = Positive test of FormatMessageW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to ensure the FORMAT_MESSAGE_ALLOCATE_BUFFER flag works properly.
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_formatmessagew_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_formatmessagew_test6 coreclrpal)
-
-target_link_libraries(paltest_formatmessagew_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_FormatMessageW_test6_paltest_formatmessagew_test6, "miscellaneous/FormatMessageW/test6/paltest_formatmessagew_test6")
+{
LPWSTR OutBuffer;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FormatMessageW
-Name = Positive test of FormatMessageW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to ensure the FORMAT_SYSTEM_MESSAGE flag works properly.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_freeenvironmentstringsw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_freeenvironmentstringsw_test1 coreclrpal)
-
-target_link_libraries(paltest_freeenvironmentstringsw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_FreeEnvironmentStringsW_test1_paltest_freeenvironmentstringsw_test1, "miscellaneous/FreeEnvironmentStringsW/test1/paltest_freeenvironmentstringsw_test1")
{
LPWSTR CapturedEnvironment = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FreeEnvironmentStringsW
-Name = Return value test for FreeEnvironmentStringsW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Get a set of strings and then free it to see if function returns success
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_freeenvironmentstringsw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_freeenvironmentstringsw_test2 coreclrpal)
-
-target_link_libraries(paltest_freeenvironmentstringsw_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_FreeEnvironmentStringsW_test2_paltest_freeenvironmentstringsw_test2, "miscellaneous/FreeEnvironmentStringsW/test2/paltest_freeenvironmentstringsw_test2")
{
WCHAR CapturedEnvironment[] = {'T','E','S','T','\0'};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = FreeEnvironmentStringsW
-Name = Positive Return value test for FreeEnvironmentStringsW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensure that FreeEnvironmentStringsW returns success when passed pointers
-= that don't point to an environment block.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getcommandlinew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcommandlinew_test1 coreclrpal)
-
-target_link_libraries(paltest_getcommandlinew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetCommandLineW_test1_paltest_getcommandlinew_test1, "miscellaneous/GetCommandLineW/test1/paltest_getcommandlinew_test1")
{
LPWSTR TheResult = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetCommandLineW
-Name = Positive test for GetCommandLineW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensure that this function returns the correct CommandLine
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentstringsw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentstringsw_test1 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentstringsw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetEnvironmentStringsW_test1_paltest_getenvironmentstringsw_test1, "miscellaneous/GetEnvironmentStringsW/test1/paltest_getenvironmentstringsw_test1")
+{
LPWSTR CapturedEnvironmentStrings = NULL;
LPWSTR EnviroStringReturned = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentStringsW
-Name = Test for correct return of GetEnvironmentStringsW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Get a set of strings, and check to make sure it contains a predetermined
-= string that was placed there.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablea_test1 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetEnvironmentVariableA_test1_paltest_getenvironmentvariablea_test1, "miscellaneous/GetEnvironmentVariableA/test1/paltest_getenvironmentvariablea_test1")
+{
/* Define some buffers needed for the function */
char * pResultBuffer = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableA
-Name = Return value test for GetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Assign a properly sized buffer and get an environment variable, check to
-= ensure it returns the correct values.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablea_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablea_test2 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablea_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define SMALL_BUFFER_SIZE 1
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetEnvironmentVariableA_test2_paltest_getenvironmentvariablea_test2, "miscellaneous/GetEnvironmentVariableA/test2/paltest_getenvironmentvariablea_test2")
+{
/* A place to stash the returned values */
int ReturnValueForSmallBuffer = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableA
-Name = Return value test on GetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Pass a small buffer to GetEnvironmentVariableA
-= to ensure it returns the size it requires.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablea_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablea_test3 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablea_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define BUFFER_SIZE 5000
#define SMALL_BUFFER_SIZE 5
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableA_test3_paltest_getenvironmentvariablea_test3, "miscellaneous/GetEnvironmentVariableA/test3/paltest_getenvironmentvariablea_test3")
{
int ReturnValueForNonExisting = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableA
-Name = Return value test for GetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Pass a nonexisting environment variable and a null to the function
-= to check return values.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablea_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablea_test4 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablea_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetEnvironmentVariableA_test4_paltest_getenvironmentvariablea_test4, "miscellaneous/GetEnvironmentVariableA/test4/paltest_getenvironmentvariablea_test4")
+{
/* Define some buffers needed for the function */
char * pResultBuffer = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableA
-Name = Positive Test for GetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Set an Environment Variable, then use GetEnvironmentVariable
-= to retrieve it ensure that it retrieves properly.
-
-
-
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_getenvironmentvariablea_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablea_test5 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablea_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableA_test5_paltest_getenvironmentvariablea_test5, "miscellaneous/GetEnvironmentVariableA/test5/paltest_getenvironmentvariablea_test5")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableA
-Name = Positive Test for GetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Set environment variables that differ only in case
-= and verify that on BSD they return two different
-= values.
-
-
-
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_getenvironmentvariablea_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablea_test6 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablea_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableA_test6_paltest_getenvironmentvariablea_test6, "miscellaneous/GetEnvironmentVariableA/test6/paltest_getenvironmentvariablea_test6")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableA
-Name = Positive Test for GetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Set an Environment Variable, then use GetEnvironmentVariable
-= to retrieve the Variable, using a name that differs only in
-= Case. In Windows this should not affect the return value
-= of the function.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablew_test1 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablew_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableW_test1_paltest_getenvironmentvariablew_test1, "miscellaneous/GetEnvironmentVariableW/test1/paltest_getenvironmentvariablew_test1")
{
/* Define some buffers needed for the function */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableW
-Name = Return value test for GetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Assign a properly sized buffer and get an environment variable,
-= check to ensure it returns the correct values.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablew_test2 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablew_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define SMALL_BUFFER_SIZE 1
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableW_test2_paltest_getenvironmentvariablew_test2, "miscellaneous/GetEnvironmentVariableW/test2/paltest_getenvironmentvariablew_test2")
{
WCHAR pSmallBuffer[SMALL_BUFFER_SIZE];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableW
-Name = Return value test on GetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Pass a small buffer to GetEnvironmentVariableW
-= to ensure it returns the size it requires.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablew_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablew_test3 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablew_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define BUFFER_SIZE 5000
#define SMALL_BUFFER_SIZE 5
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableW_test3_paltest_getenvironmentvariablew_test3, "miscellaneous/GetEnvironmentVariableW/test3/paltest_getenvironmentvariablew_test3")
{
/* Define some buffers needed for the function */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableW
-Name = Return value test for GetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Pass a nonexisting environment variable and a null to the function
-= to check return values.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getenvironmentvariablew_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablew_test4 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablew_test4
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetEnvironmentVariableW_test4_paltest_getenvironmentvariablew_test4, "miscellaneous/GetEnvironmentVariableW/test4/paltest_getenvironmentvariablew_test4")
+{
/* Define some buffers needed for the function */
WCHAR * pResultBuffer = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableW
-Name = Positive Test for GetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Set an Environment Variable, then use GetEnvironmentVariable
-= to retrieve it -- ensure that it retrieves properly.
-
-
-
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_getenvironmentvariablew_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablew_test5 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablew_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableW_test5_paltest_getenvironmentvariablew_test5, "miscellaneous/GetEnvironmentVariableW/test5/paltest_getenvironmentvariablew_test5")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableW
-Name = Positive Test for GetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Set an Environment Variable, then use GetEnvironmentVariable
-= to retrieve it. Then set another environment variable that differs
-= from the original variable only by case and verify that
-= GetEnvironmnetVariable returns the correct value.
-
-
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_getenvironmentvariablew_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_getenvironmentvariablew_test6 coreclrpal)
-
-target_link_libraries(paltest_getenvironmentvariablew_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_GetEnvironmentVariableW_test6_paltest_getenvironmentvariablew_test6, "miscellaneous/GetEnvironmentVariableW/test6/paltest_getenvironmentvariablew_test6")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetEnvironmentVariableW
-Name = Positive Test for GetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Set an Environment Variable, then use GetEnvironmentVariable
-= to retrieve the Variable, using a name that differs only in
-= Case. In Windows this should not affect the return value
-= of the function.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getlasterror_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getlasterror_test1 coreclrpal)
-
-target_link_libraries(paltest_getlasterror_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetLastError_test1_paltest_getlasterror_test1, "miscellaneous/GetLastError/test1/paltest_getlasterror_test1")
+{
/*
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetLastError
-Name = Positive Test for GetLastError
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensure GetLastError returns the error message which was set.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_getsysteminfo_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getsysteminfo_test1 coreclrpal)
-
-target_link_libraries(paltest_getsysteminfo_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetSystemInfo_test1_paltest_getsysteminfo_test1, "miscellaneous/GetSystemInfo/test1/paltest_getsysteminfo_test1")
+{
SYSTEM_INFO TheSystemInfo;
SYSTEM_INFO* pSystemInfo = &TheSystemInfo;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetSystemInfo
-Name = Positive Test for GetSystemInfo
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensures the two required System Info fields can be aquired,
-= and the others are all 0.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_gettickcount_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_gettickcount_test1 coreclrpal)
-
-target_link_libraries(paltest_gettickcount_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GetTickCount_test1_paltest_gettickcount_test1, "miscellaneous/GetTickCount/test1/paltest_gettickcount_test1")
+{
DWORD FirstCount = 0;
DWORD SecondCount = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GetTickCount
-Name = Positive Test for GetTickCount
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Grab two Tick Counts with this function, and ensure that
-= the second is larger to show that the tick count is increasing.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_globalmemorystatusex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_globalmemorystatusex_test1 coreclrpal)
-
-target_link_libraries(paltest_globalmemorystatusex_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_GlobalMemoryStatusEx_test1_paltest_globalmemorystatusex_test1, "miscellaneous/GlobalMemoryStatusEx/test1/paltest_globalmemorystatusex_test1")
+{
MEMORYSTATUSEX memoryStatus;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = GlobalMemoryStatusEx
-Name = Positive Test for GlobalMemoryStatusEx
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensures that invocation of GlobalMemoryStatusEx succeeds and
-= that it returns nonzero virtual and physical memory sizes
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedexchangeadd_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedexchangeadd_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedexchangeadd_test1
- ${COMMON_TEST_LIBRARIES}
-)
*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterLockedExchangeAdd_test1_paltest_interlockedexchangeadd_test1, "miscellaneous/InterLockedExchangeAdd/test1/paltest_interlockedexchangeadd_test1")
{
LONG TheReturn;
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedbit_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedbit_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedbit_test1
- ${COMMON_TEST_LIBRARIES}
-)
UCHAR expectedReturnValue;
} TEST_DATA;
-TEST_DATA test_data[] =
+PALTEST(miscellaneous_InterlockedBit_test1_paltest_interlockedbit_test1, "miscellaneous/InterlockedBit/test1/paltest_interlockedbit_test1")
{
- { (LONG)0x00000000, 3, (LONG)0x00000000, 0 },
- { (LONG)0x12341234, 2, (LONG)0x12341230, 1 },
- { (LONG)0x12341234, 3, (LONG)0x12341234, 0 },
- { (LONG)0x12341234, 31, (LONG)0x12341234, 0 },
- { (LONG)0x12341234, 28, (LONG)0x02341234, 1 },
- { (LONG)0xffffffff, 28, (LONG)0xefffffff, 1 }
-};
-
-int __cdecl main(int argc, char *argv[]) {
+ TEST_DATA test_data[] =
+ {
+ { (LONG)0x00000000, 3, (LONG)0x00000000, 0 },
+ { (LONG)0x12341234, 2, (LONG)0x12341230, 1 },
+ { (LONG)0x12341234, 3, (LONG)0x12341234, 0 },
+ { (LONG)0x12341234, 31, (LONG)0x12341234, 0 },
+ { (LONG)0x12341234, 28, (LONG)0x02341234, 1 },
+ { (LONG)0xffffffff, 28, (LONG)0xefffffff, 1 }
+ };
/*
* Initialize the PAL and return FAILURE if this fails
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedBitTestAndReset
-Name = Test for InterlockedBitTestAndReset
-TYPE = DEFAULT
-EXE1 = test
-Description
-Test validates that function InterlockedBitTestAndReset work as intended.
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedbit_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedbit_test2 coreclrpal)
-
-target_link_libraries(paltest_interlockedbit_test2
- ${COMMON_TEST_LIBRARIES}
-)
UCHAR expectedReturnValue;
} TEST_DATA;
-TEST_DATA test_data[] =
+PALTEST(miscellaneous_InterlockedBit_test2_paltest_interlockedbit_test2, "miscellaneous/InterlockedBit/test2/paltest_interlockedbit_test2")
{
- { (LONG)0x00000000, 2, (LONG)0x00000004, 0 },
- { (LONG)0x12341234, 2, (LONG)0x12341234, 1 },
- { (LONG)0x12341234, 3, (LONG)0x1234123c, 0 },
- { (LONG)0x12341234, 31, (LONG)0x92341234, 0 },
- { (LONG)0x12341234, 28, (LONG)0x12341234, 1 },
- { (LONG)0xffffffff, 28, (LONG)0xffffffff, 1 }
-};
-
-int __cdecl main(int argc, char *argv[]) {
+ TEST_DATA test_data[] =
+ {
+ { (LONG)0x00000000, 2, (LONG)0x00000004, 0 },
+ { (LONG)0x12341234, 2, (LONG)0x12341234, 1 },
+ { (LONG)0x12341234, 3, (LONG)0x1234123c, 0 },
+ { (LONG)0x12341234, 31, (LONG)0x92341234, 0 },
+ { (LONG)0x12341234, 28, (LONG)0x12341234, 1 },
+ { (LONG)0xffffffff, 28, (LONG)0xffffffff, 1 }
+ };
/*
* Initialize the PAL and return FAILURE if this fails
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedBitTestAndSet
-Name = Test for InterlockedBitTestAndSet
-TYPE = DEFAULT
-EXE1 = test
-Description
-Test validates that function InterlockedBitTestAndSet work as intended.
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedcompareexchange_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedcompareexchange_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedcompareexchange_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define SECOND_VALUE 5
#define THIRD_VALUE 10
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_InterlockedCompareExchange_test1_paltest_interlockedcompareexchange_test1, "miscellaneous/InterlockedCompareExchange/test1/paltest_interlockedcompareexchange_test1")
+{
int BaseVariableToManipulate = START_VALUE;
int ValueToExchange = SECOND_VALUE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedCompareExchange
-Name = Positive test of InterlockedCompareExchange
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if both successful and unsuccessful compare exchanges workp
-= roperly -- ie. Exchange and don't exchange.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedcompareexchange_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedcompareexchange_test2 coreclrpal)
-
-target_link_libraries(paltest_interlockedcompareexchange_test2
- ${COMMON_TEST_LIBRARIES}
-)
//Main entry point of the program
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_InterlockedCompareExchange_test2_paltest_interlockedcompareexchange_test2, "miscellaneous/InterlockedCompareExchange/test2/paltest_interlockedcompareexchange_test2")
+{
int i = 0;
DWORD dwThreadID=0;
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedcompareexchange64_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedcompareexchange64_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedcompareexchange64_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define SECOND_VALUE 5
#define THIRD_VALUE 10
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_InterlockedCompareExchange64_test1_paltest_interlockedcompareexchange64_test1, "miscellaneous/InterlockedCompareExchange64/test1/paltest_interlockedcompareexchange64_test1")
+{
LONGLONG BaseVariableToManipulate = START_VALUE;
LONGLONG ValueToExchange = SECOND_VALUE;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedCompareExchange64
-Name = Positive test of InterlockedCompareExchange64
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if both successful and unsuccessful compare exchanges workp
-= roperly -- ie. Exchange and don't exchange.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedcompareexchange64_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedcompareexchange64_test2 coreclrpal)
-
-target_link_libraries(paltest_interlockedcompareexchange64_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define MAX_THREADS 64
#define REPEAT_COUNT 10000
-LONG GlobalCounter = 0;
-void IncrementCounter(void);
+LONG GlobalCounter_InterlockedCompareExchange64_test2 = 0;
+void IncrementCounter_InterlockedCompareExchange64_test2(void);
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedCompareExchange64_test2_paltest_interlockedcompareexchange64_test2, "miscellaneous/InterlockedCompareExchange64/test2/paltest_interlockedcompareexchange64_test2")
{
LONG TotalOperations=0;
TotalOperations = MAX_THREADS * REPEAT_COUNT;
- GlobalCounter = 0;
+ GlobalCounter_InterlockedCompareExchange64_test2 = 0;
/*
* Initialize the PAL and return FAILURE if this fails
hThread[i] = CreateThread(
NULL, // default security attributes
0, // use default stack size
- (LPTHREAD_START_ROUTINE) IncrementCounter, // thread function
+ (LPTHREAD_START_ROUTINE) IncrementCounter_InterlockedCompareExchange64_test2, // thread function
NULL, // argument to thread function
0, // use default creation flags
&dwThreadID); // returns the thread identifier
/* Compare the value of global counter with zero.
*/
- if (TotalOperations!=GlobalCounter)
+ if (TotalOperations!=GlobalCounter_InterlockedCompareExchange64_test2)
{
Fail("Test Case Failed: InterlockedDecrement \n");
}
return PASS;
}
-void IncrementCounter(void)
+void IncrementCounter_InterlockedCompareExchange64_test2(void)
{
int i=0;
for (i=0; i<REPEAT_COUNT;i++)
{
- InterlockedIncrement(&GlobalCounter);
+ InterlockedIncrement(&GlobalCounter_InterlockedCompareExchange64_test2);
}
}
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedcompareexchangepointer_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedcompareexchangepointer_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedcompareexchangepointer_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedCompareExchangePointer_test1_paltest_interlockedcompareexchangepointer_test1, "miscellaneous/InterlockedCompareExchangePointer/test1/paltest_interlockedcompareexchangepointer_test1")
{
long StartValue = 5;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedCompareExchangePointer
-Name = Positive test of InterlockedCompareExchangePointer
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if both successful and unsuccessful compare exchanges work
-= properly -- ie. Exchange and don't exchange.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockeddecrement_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockeddecrement_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockeddecrement_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedDecrement_test1_paltest_interlockeddecrement_test1, "miscellaneous/InterlockedDecrement/test1/paltest_interlockeddecrement_test1")
{
int TheValue = 0;
int TheReturn;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedDecrement
-Name = Positive test of InterlockedDecrement
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if this decrements the variable correctly and
-= has the correct return value.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockeddecrement_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockeddecrement_test2 coreclrpal)
-
-target_link_libraries(paltest_interlockeddecrement_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define MAX_THREADS 64
#define REPEAT_COUNT 10000
-LONG GlobalCounter = 0;
-void DecrementCounter(void);
+LONG GlobalCounter_InterlockedDecrement_test2 = 0;
+void DecrementCounter_InterlockedDecrement_test2(void);
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedDecrement_test2_paltest_interlockeddecrement_test2, "miscellaneous/InterlockedDecrement/test2/paltest_interlockeddecrement_test2")
{
LONG TotalOperations=0;
DWORD dwThreadID = 0;
HANDLE hThread[MAX_THREADS];
TotalOperations = MAX_THREADS * REPEAT_COUNT;
- GlobalCounter = TotalOperations;
+ GlobalCounter_InterlockedDecrement_test2 = TotalOperations;
/*
* Initialize the PAL and return FAILURE if this fails
hThread[i] = CreateThread(
NULL, // default security attributes
0, // use default stack size
- (LPTHREAD_START_ROUTINE) DecrementCounter, // thread function
+ (LPTHREAD_START_ROUTINE) DecrementCounter_InterlockedDecrement_test2, // thread function
NULL, // argument to thread function
0, // use default creation flags
&dwThreadID); // returns the thread identifier
/* Compare the value of global counter with zero.
*/
- if (0!=GlobalCounter)
+ if (0!=GlobalCounter_InterlockedDecrement_test2)
{
Fail("Test Case Failed: InterlockedDecrement \n");
}
return PASS;
}
-void DecrementCounter(void)
+void DecrementCounter_InterlockedDecrement_test2(void)
{
int i=0;
for (i=0; i<REPEAT_COUNT;i++)
{
- InterlockedDecrement(&GlobalCounter);
+ InterlockedDecrement(&GlobalCounter_InterlockedDecrement_test2);
}
}
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockeddecrement64_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockeddecrement64_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockeddecrement64_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedDecrement64_test1_paltest_interlockeddecrement64_test1, "miscellaneous/InterlockedDecrement64/test1/paltest_interlockeddecrement64_test1")
{
LONGLONG TheValue = 0;
LONGLONG TheReturn;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedDecrement64
-Name = Positive test of InterlockedDecrement64
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if this decrements the variable correctly and
-= has the correct return value.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockeddecrement64_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockeddecrement64_test2 coreclrpal)
-
-target_link_libraries(paltest_interlockeddecrement64_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define MAX_THREADS 64
#define REPEAT_COUNT 10000
-LONG GlobalCounter = 0;
-void DecrementCounter(void);
+LONG GlobalCounter_InterlockedDecrement64_test2 = 0;
+void DecrementCounter_InterlockedDecrement64_test2(void);
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedDecrement64_test2_paltest_interlockeddecrement64_test2, "miscellaneous/InterlockedDecrement64/test2/paltest_interlockeddecrement64_test2")
{
LONG TotalOperations=0;
int i=0;
DWORD dwThreadID = 0;
HANDLE hThread[MAX_THREADS];
TotalOperations = MAX_THREADS * REPEAT_COUNT;
- GlobalCounter = TotalOperations;
+ GlobalCounter_InterlockedDecrement64_test2 = TotalOperations;
/*
* Initialize the PAL and return FAILURE if this fails
hThread[i] = CreateThread(
NULL, // default security attributes
0, // use default stack size
- (LPTHREAD_START_ROUTINE) DecrementCounter, // thread function
+ (LPTHREAD_START_ROUTINE) DecrementCounter_InterlockedDecrement64_test2, // thread function
NULL, // argument to thread function
0, // use default creation flags
&dwThreadID); // returns the thread identifier
/* Compare the value of global counter with zero.
*/
- if (0!=GlobalCounter)
+ if (0!=GlobalCounter_InterlockedDecrement64_test2)
{
Fail("Test Case Failed: InterlockedDecrement \n");
}
return PASS;
}
-void DecrementCounter(void)
+void DecrementCounter_InterlockedDecrement64_test2(void)
{
int i=0;
for (i=0; i<REPEAT_COUNT;i++)
{
- InterlockedDecrement(&GlobalCounter);
+ InterlockedDecrement(&GlobalCounter_InterlockedDecrement64_test2);
}
}
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedexchange_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedexchange_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedexchange_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define START_VALUE 0
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_InterlockedExchange_test1_paltest_interlockedexchange_test1, "miscellaneous/InterlockedExchange/test1/paltest_interlockedexchange_test1")
+{
int TheValue = START_VALUE;
int NewValue = 5;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedExchange
-Name = Positive test of InterlockedExchange
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if this exchanges the variables correctly and
-= has the correct return value.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedexchange64_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedexchange64_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedexchange64_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define START_VALUE 0
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_InterlockedExchange64_test1_paltest_interlockedexchange64_test1, "miscellaneous/InterlockedExchange64/test1/paltest_interlockedexchange64_test1")
+{
LONGLONG TheValue = START_VALUE;
LONGLONG NewValue = 5;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedExchange64
-Name = Positive test of InterlockedExchange64
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if this exchanges the variables correctly and
-= has the correct return value.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- InterlockedExchangePointer.cpp
-)
-
-add_executable(paltest_interlockedexchangepointer_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedexchangepointer_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedexchangepointer_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedExchangePointer_test1_paltest_interlockedexchangepointer_test1, "miscellaneous/InterlockedExchangePointer/test1/paltest_interlockedexchangepointer_test1")
{
int err;
int i1 = 10;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = miscellaneous
-Function = InterlockedExchangePointer
-Name = Pos test for InterlockedExchangePointer API to excnage a pair of value
-TYPE = DEFAULT
-EXE1 = interlockedexchangepointer
-Description
-=Test the InterlockedExchangePointer to exchange a pair of value
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedincrement_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedincrement_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedincrement_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedIncrement_test1_paltest_interlockedincrement_test1, "miscellaneous/InterlockedIncrement/test1/paltest_interlockedincrement_test1")
{
int TheValue = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedIncreement
-Name = Positive test of InterlockedIncrement
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if this increments the variable correctly and
-= has the correct return value.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedincrement_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedincrement_test2 coreclrpal)
-
-target_link_libraries(paltest_interlockedincrement_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define MAX_THREADS 64
#define REPEAT_COUNT 10000
-LONG GlobalCounter = 0;
+LONG GlobalCounter_InterlockedIncrement_test2 = 0;
-void IncrementCounter(void);
+void IncrementCounter_InterlockedIncrement_test2(void);
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedIncrement_test2_paltest_interlockedincrement_test2, "miscellaneous/InterlockedIncrement/test2/paltest_interlockedincrement_test2")
{
LONG TotalOperations=0;
DWORD dwThreadID = 0;
HANDLE hThread[MAX_THREADS];
TotalOperations = MAX_THREADS * REPEAT_COUNT;
- GlobalCounter = 0;
+ GlobalCounter_InterlockedIncrement_test2 = 0;
/*
* Initialize the PAL and return FAILURE if this fails
hThread[i] = CreateThread(
NULL, // default security attributes
0, // use default stack size
- (LPTHREAD_START_ROUTINE) IncrementCounter, // thread function
+ (LPTHREAD_START_ROUTINE) IncrementCounter_InterlockedIncrement_test2, // thread function
NULL, // argument to thread function
0, // use default creation flags
&dwThreadID); // returns the thread identifier
/* Compare the value of global counter with zero.
*/
- if (TotalOperations!=GlobalCounter)
+ if (TotalOperations!=GlobalCounter_InterlockedIncrement_test2)
{
Fail("Test Case Failed: InterlockedDecrement \n");
}
return PASS;
}
-void IncrementCounter(void)
+void IncrementCounter_InterlockedIncrement_test2(void)
{
int i=0;
for (i=0; i<REPEAT_COUNT;i++)
{
- InterlockedIncrement(&GlobalCounter);
+ InterlockedIncrement(&GlobalCounter_InterlockedIncrement_test2);
}
}
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedincrement64_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedincrement64_test1 coreclrpal)
-
-target_link_libraries(paltest_interlockedincrement64_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedIncrement64_test1_paltest_interlockedincrement64_test1, "miscellaneous/InterlockedIncrement64/test1/paltest_interlockedincrement64_test1")
{
LONGLONG TheValue = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = InterlockedIncrement64
-Name = Positive test of InterlockedIncrement64
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see if this increments the variable correctly and
-= has the correct return value.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_interlockedincrement64_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_interlockedincrement64_test2 coreclrpal)
-
-target_link_libraries(paltest_interlockedincrement64_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define MAX_THREADS 64
#define REPEAT_COUNT 10000
-LONG GlobalCounter = 0;
-void IncrementCounter(void);
+LONG GlobalCounter_InterlockedIncrement64_test2 = 0;
+void IncrementCounter_InterlockedIncrement64_test2(void);
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_InterlockedIncrement64_test2_paltest_interlockedincrement64_test2, "miscellaneous/InterlockedIncrement64/test2/paltest_interlockedincrement64_test2")
{
LONG TotalOperations=0;
DWORD dwThreadID = 0;
HANDLE hThread[MAX_THREADS];
TotalOperations = MAX_THREADS * REPEAT_COUNT;
- GlobalCounter = 0;
+ GlobalCounter_InterlockedIncrement64_test2 = 0;
/*
* Initialize the PAL and return FAILURE if this fails
hThread[i] = CreateThread(
NULL, // default security attributes
0, // use default stack size
- (LPTHREAD_START_ROUTINE) IncrementCounter, // thread function
+ (LPTHREAD_START_ROUTINE) IncrementCounter_InterlockedIncrement64_test2, // thread function
NULL, // argument to thread function
0, // use default creation flags
&dwThreadID); // returns the thread identifier
/* Compare the value of global counter with zero.
*/
- if (TotalOperations!=GlobalCounter)
+ if (TotalOperations!=GlobalCounter_InterlockedIncrement64_test2)
{
Fail("Test Case Failed: InterlockedDecrement \n");
}
return PASS;
}
-void IncrementCounter(void)
+void IncrementCounter_InterlockedIncrement64_test2(void)
{
int i=0;
for (i=0; i<REPEAT_COUNT;i++)
{
- InterlockedIncrement(&GlobalCounter);
+ InterlockedIncrement(&GlobalCounter_InterlockedIncrement64_test2);
}
}
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_isbadcodeptr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isbadcodeptr_test1 coreclrpal)
-
-target_link_libraries(paltest_isbadcodeptr_test1
- ${COMMON_TEST_LIBRARIES}
-)
*
* executable entry point
*/
-INT __cdecl main(INT argc, CHAR **argv)
+PALTEST(miscellaneous_IsBadCodePtr_test1_paltest_isbadcodeptr_test1, "miscellaneous/IsBadCodePtr/test1/paltest_isbadcodeptr_test1")
{
BOOL ResultValue = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = C Runtime
-Function = IsBadCodePtr
-Name = Positive Test for IsBadCodePtr
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= ensure that IsBadCodePtr return 0 when
-= it can read memory or non zero when it can't.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_isbadreadptr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isbadreadptr_test1 coreclrpal)
-
-target_link_libraries(paltest_isbadreadptr_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define MEMORY_AMOUNT 16
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_IsBadReadPtr_test1_paltest_isbadreadptr_test1, "miscellaneous/IsBadReadPtr/test1/paltest_isbadreadptr_test1")
{
LPVOID TestingPointer = NULL;
BOOL ResultValue = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = IsBadReadPtr
-Name = Return value tests for IsBadReadPtr
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensure that this returns true and false when it is supposed to.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_isbadwriteptr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_isbadwriteptr_test1 coreclrpal)
-
-target_link_libraries(paltest_isbadwriteptr_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define MEMORY_AMOUNT 16
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_IsBadWritePtr_test1_paltest_isbadwriteptr_test1, "miscellaneous/IsBadWritePtr/test1/paltest_isbadwriteptr_test1")
+{
void * TestingPointer = NULL;
BOOL ResultValue = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = IsBadWritePtr
-Name = Return Value test IsBadWritePtr
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to ensure that the function returns true and
-= false when it is supposed to.
-
-
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_isbadwriteptr_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_isbadwriteptr_test2 coreclrpal)
-
-target_link_libraries(paltest_isbadwriteptr_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_IsBadWritePtr_test2_paltest_isbadwriteptr_test2, "miscellaneous/IsBadWritePtr/test2/paltest_isbadwriteptr_test2")
+{
LPVOID PageOne, PageTwo, PageThree;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = IsBadWritePtr
-Name = Return Value test IsBadWritePtr
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Create three consecuative pages, NOACCES, READWRITE and
-= NOACCESS. Check to ensure that the READWRITE page returns 0, to
-= ensure that IsBadWritePtr isn't overflowing. Also check the other two
-= pages to see that they return non-zero.
-
-
-
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_isbadwriteptr_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_isbadwriteptr_test3 coreclrpal)
-
-target_link_libraries(paltest_isbadwriteptr_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_IsBadWritePtr_test3_paltest_isbadwriteptr_test3, "miscellaneous/IsBadWritePtr/test3/paltest_isbadwriteptr_test3")
+{
LPVOID PageOne;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = IsBadWritePtr
-Name = Return Value test IsBadWritePtr
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Check that IsBadWritePtr returns non-zero on Read-only memory.
-
-
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_messageboxw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_messageboxw_test1 coreclrpal)
-
-target_link_libraries(paltest_messageboxw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_MessageBoxW_test1_paltest_messageboxw_test1, "miscellaneous/MessageBoxW/test1/paltest_messageboxw_test1")
{
/* Declare Variables to use with convert()*/
WCHAR * PalTitle = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = MessageBoxW
-Name = Positive test of MessageBoxW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensure that the return values are correct for each type of Message Style.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_messageboxw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_messageboxw_test2 coreclrpal)
-
-target_link_libraries(paltest_messageboxw_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_MessageBoxW_test2_paltest_messageboxw_test2, "miscellaneous/MessageBoxW/test2/paltest_messageboxw_test2")
+{
/*
* Initialize the PAL and return FAILURE if this fails
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = MessageBoxW
-Name = Positive test of MessageBoxW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Ensure that the return values are correct for each type of Message Style.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_setenvironmentvariablea_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablea_test1 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablea_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#define BUF_SIZE 128
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableA_test1_paltest_setenvironmentvariablea_test1, "miscellaneous/SetEnvironmentVariableA/test1/paltest_setenvironmentvariablea_test1")
{
/* Define some buffers needed for the function */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableA
-Name = Positive test of SetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Set an environment variable and check to ensure success was returned. Then
-= get the environment variable and compare to the correct value. Also, check
-= that calling the function again, resets the variable properly. And that
-= calling with NULL deletes the variable.
-
-
-
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_setenvironmentvariablea_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablea_test2 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablea_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableA_test2_paltest_setenvironmentvariablea_test2, "miscellaneous/SetEnvironmentVariableA/test2/paltest_setenvironmentvariablea_test2")
{
/* Define some buffers needed for the function */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableA
-Name = Return value test of SetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to see that passing NULL to the first param fails.
-= Test that passing NULL to both params fails.
-= Set an environment variable, then pass NULL to the second param
-= to delete it. Then make the same call again, to check that it fails.
-
-
-
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_setenvironmentvariablea_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablea_test3 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablea_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableA_test3_paltest_setenvironmentvariablea_test3, "miscellaneous/SetEnvironmentVariableA/test3/paltest_setenvironmentvariablea_test3")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableA
-Name = Return value test of SetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Test creating environment variables that differ only
-= by case and check that they are treated as separate
-= variables in the BSD operating system.
-
-
-
-
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_setenvironmentvariablea_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablea_test4 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablea_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableA_test4_paltest_setenvironmentvariablea_test4, "miscellaneous/SetEnvironmentVariableA/test4/paltest_setenvironmentvariablea_test4")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableA
-Name = Return value test of SetEnvironmentVariableA
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test that creating an environment variable and trying
-= to attain the value of the environment variable using
-= a name with different case works in the Windows
-= Environment.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_setenvironmentvariablew_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablew_test1 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablew_test1
- ${COMMON_TEST_LIBRARIES}
-)
/* Depends on GetEnvironmentVariable */
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableW_test1_paltest_setenvironmentvariablew_test1, "miscellaneous/SetEnvironmentVariableW/test1/paltest_setenvironmentvariablew_test1")
{
/* Define some buffers needed for the function */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableW
-Name = Positive test of SetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Set an environment variable and check to ensure success was returned. Then
-= get the environment variable and compare to the correct value. Also, check
-= that calling the function again, resets the variable properly. And that
-= calling with NULL deletes the variable.
-
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_setenvironmentvariablew_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablew_test2 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablew_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableW_test2_paltest_setenvironmentvariablew_test2, "miscellaneous/SetEnvironmentVariableW/test2/paltest_setenvironmentvariablew_test2")
{
/* Define some buffers needed for the function */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableW
-Name = Return value test of SetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Test to see that passing NULL to the first param fails.
-= Test that passing NULL to both params fails.
-= Set an environment variable, then pass NULL to the second param
-= to delete it. Then make the same call again, to check that it fails.
-
-
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_setenvironmentvariablew_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablew_test3 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablew_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableW_test3_paltest_setenvironmentvariablew_test3, "miscellaneous/SetEnvironmentVariableW/test3/paltest_setenvironmentvariablew_test3")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableW
-Name = Return value test of SetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Create environment variables that differ only by case
-= and verify that they are treated distinctly in the
-= BSD Operating System.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_setenvironmentvariablew_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_setenvironmentvariablew_test4 coreclrpal)
-
-target_link_libraries(paltest_setenvironmentvariablew_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_SetEnvironmentVariableW_test4_paltest_setenvironmentvariablew_test4, "miscellaneous/SetEnvironmentVariableW/test4/paltest_setenvironmentvariablew_test4")
{
#if WIN32
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetEnvironmentVariableW
-Name = Return value test of SetEnvironmentVariableW
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Create environment variable and try to retrieve
-= the value of the variable by using a variable name
-= that differs in case. This should not affect the
-= return value in the Windows Operating System.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_setlasterror_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_setlasterror_test1 coreclrpal)
-
-target_link_libraries(paltest_setlasterror_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(miscellaneous_SetLastError_test1_paltest_setlasterror_test1, "miscellaneous/SetLastError/test1/paltest_setlasterror_test1")
+{
/* Error value that we can set to test */
const unsigned int FAKE_ERROR = 5;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Miscellaneous
-Function = SetLastError
-Name = Positive test of SetLastError
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Set the Last Error and then use GetLastError to make sure
-= it was set properly. Assumes GetLastError is working.
-
-
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_i64tow_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_i64tow_test1 coreclrpal)
-
-target_link_libraries(paltest_i64tow_test1
- ${COMMON_TEST_LIBRARIES}
-)
} testCase;
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous__i64tow_test1_paltest_i64tow_test1, "miscellaneous/_i64tow/test1/paltest_i64tow_test1")
{
WCHAR buffer[256];
WCHAR *testStr;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = miscellaneous
-Function = _i64tow_s
-Name = Test #1 for _i64tow_s
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests _i64tow_s with normal values and different radices, negative
-=values, as well as the highest and lowest values.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_queryperformancecounter_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_queryperformancecounter_test1 coreclrpal)
-
-target_link_libraries(paltest_queryperformancecounter_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-/* Milliseconds of error which are acceptable Function execution time, etc.
- FreeBSD has a "standard" resolution of 50ms for waiting operations, so we
- must take that into account as well */
-DWORD AcceptableTimeError = 15;
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_queryperformancecounter_test1_paltest_queryperformancecounter_test1, "miscellaneous/queryperformancecounter/test1/paltest_queryperformancecounter_test1")
{
+ /* Milliseconds of error which are acceptable Function execution time, etc.
+ FreeBSD has a "standard" resolution of 50ms for waiting operations, so we
+ must take that into account as well */
+ DWORD AcceptableTimeError = 15;
int i;
int NumIterations = 100;
+++ /dev/null
-Version = 1.0
-Section = Miscellaneous
-Function = QueryPerformanceCounter
-Name = Positive Test for QueryPerformanceCounter
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= This test will verify with QueryPerformanceCounter
-= and QueryPerformanceFrequency that an API call of Sleep
-= of 100 milliseconds takes 100 milliseconds, taking into
-= account the error tolerance.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_queryperformancefrequency_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_queryperformancefrequency_test1 coreclrpal)
-
-target_link_libraries(paltest_queryperformancefrequency_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(miscellaneous_queryperformancefrequency_test1_paltest_queryperformancefrequency_test1, "miscellaneous/queryperformancefrequency/test1/paltest_queryperformancefrequency_test1")
{
LARGE_INTEGER Freq;
+++ /dev/null
-Version = 1.0
-Section = Miscellaneous
-Function = QueryPerformanceFrequency
-Name = Positive Test for QueryPerformanceFrequency
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= This test will verify that QueryPerformanceFrequency
-= returns a valid return value.
-= The value of the count is processor dependent. On
-= some processors, for example, the count might be the
-= cycle rate of the processor clock.
+++ /dev/null
-# TODO: make these tests compile
-# add_subdirectory(PAL_get_stderr)
-# add_subdirectory(PAL_get_stdin)
-# add_subdirectory(PAL_get_stdout)
-
-add_subdirectory(PAL_errno)
-add_subdirectory(PAL_GetPALDirectoryW)
-add_subdirectory(PAL_Initialize_Terminate)
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- PAL_GetPALDirectoryW.cpp
-)
-
-add_executable(paltest_pal_getpaldirectoryw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_getpaldirectoryw_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_getpaldirectoryw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_GetPALDirectoryW_test1_paltest_pal_getpaldirectoryw_test1, "pal_specific/PAL_GetPALDirectoryW/test1/paltest_pal_getpaldirectoryw_test1")
{
int err;
BOOL bValue;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = PAL_Specific
-Function = PAL_GetPALDirectoryW
-Name = Positive test for PAL_GetPALDirectoryW to retrieve fully-qualified directory name.
-TYPE = DEFAULT
-EXE1 = pal_getpaldirectoryw
-Description
-=Retrieve the fully-qualified directory name where the PAL DLL is loaded from
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- PAL_GetUserTempDirectoryW.cpp
-)
-
-add_executable(paltest_pal_getusertempdirectoryw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_getusertempdirectoryw_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_getusertempdirectoryw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define DIRECTORYLENGTH 1024
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_GetUserTempDirectoryW_test1_paltest_pal_getusertempdirectoryw_test1, "pal_specific/PAL_GetUserTempDirectoryW/test1/paltest_pal_getusertempdirectoryw_test1")
{
int err;
DWORD dwFileAttribute;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = pal_specific
-Function = PAL_GetUserTempDirectoryW
-Name = Positive test for PAL_GetUserTempDirectoryW API
-TYPE = DEFAULT
-EXE1 = pal_getusertempdirectoryw
-Description
-=Test the PAL_GetUserTempDirectoryW to retrieve the user temp
-=directory name
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- PAL_Initialize_Terminate.cpp
-)
-
-add_executable(paltest_pal_initialize_terminate_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_initialize_terminate_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_initialize_terminate_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_Initialize_Terminate_test1_paltest_pal_initialize_terminate_test1, "pal_specific/PAL_Initialize_Terminate/test1/paltest_pal_initialize_terminate_test1")
{
int err;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = PAL_Specific
-Function = PAL_Initialize and PAL_Terminate
-Name = Positive test for PAL_Initialize and PAL_Terminate
-TYPE = DEFAULT
-EXE1 = pal_initialize_terminate
-Description
-=Test the PAL_Initialize to initialize the PAL environment
-=Test the PAL_Terminate to clean up the PAL environment
+++ /dev/null
-set(SOURCES
- pal_initialize_twice.cpp
-)
-
-add_executable(paltest_pal_initialize_terminate_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_initialize_terminate_test2 coreclrpal)
-
-target_link_libraries(paltest_pal_initialize_terminate_test2
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_Initialize_Terminate_test2_paltest_pal_initialize_terminate_test2, "pal_specific/PAL_Initialize_Terminate/test2/paltest_pal_initialize_terminate_test2")
{
/* Initialize the PAL environment */
if (0 != (PAL_Initialize(argc, argv)))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = PAL_Specific
-Function = PAL_Initialize and PAL_Terminate
-Name = Positive test for calling PAL_Initialize twice
-TYPE = DEFAULT
-EXE1 = pal_initialize_twice
-Description
-=Test calling PAL_Initialize twice to initialize the PAL environment
-=and increment the init_count.
-=Test calling PAL_Terminate twice to decrement the init_count
-=and then clean up the PAL environment.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2_neg)
-
+++ /dev/null
-set(SOURCES
- PAL_RegisterLibraryW_UnregisterLibraryW.cpp
-)
-
-add_executable(paltest_pal_registerlibraryw_unregisterlibraryw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_registerlibraryw_unregisterlibraryw_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_registerlibraryw_unregisterlibraryw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_RegisterLibraryW_UnregisterLibraryW_test1_paltest_pal_registerlibraryw_unregisterlibraryw_test1, "pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/paltest_pal_registerlibraryw_unregisterlibraryw_test1")
{
HMODULE ModuleHandle;
char ModuleName[64];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = pal_specific
-Function = PAL_RegisterLibraryW and PAL_UnregisterLibraryW API
-Name = Positive test PAL_RegisterLibraryW and PAL_UnregisterLibaryW API
-TYPE = DEFAULT
-EXE1 = pal_registerlibraryw_unregisterlibraryw
-Description
-=Test the PAL_RegisterLibraryW and PAL_UnregisterLibraryW to map an executable
-=module into calling process address space and unmap this module
+++ /dev/null
-set(SOURCES
- reg_unreg_libraryw_neg.cpp
-)
-
-add_executable(paltest_reg_unreg_libraryw_neg
- ${SOURCES}
-)
-
-add_dependencies(paltest_reg_unreg_libraryw_neg coreclrpal)
-
-target_link_libraries(paltest_reg_unreg_libraryw_neg
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_RegisterLibraryW_UnregisterLibraryW_test2_neg_paltest_reg_unreg_libraryw_neg, "pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/paltest_reg_unreg_libraryw_neg")
{
HMODULE ModuleHandle;
char ModuleName[64];
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = pal_specific
-Function = PAL_RegisterLibraryW and PAL_UnregisterLibraryW API
-Name = Negative test for PAL_RegisterLibraryW and PAL_UnregisterLibaryW API to map and unmap a non-existant module
-TYPE = DEFAULT
-EXE1 = pal_registerlibraryw_unregisterlibraryw_neg
-Description
-=Test the PAL_RegisterLibraryW and PAL_UnregisterLibraryW to map a non-existant
-=module into calling process address space
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- PAL_errno.cpp
-)
-
-add_executable(paltest_pal_errno_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_errno_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_errno_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_errno_test1_paltest_pal_errno_test1, "pal_specific/PAL_errno/test1/paltest_pal_errno_test1")
{
int err;
FILE *pFile = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = PAL_Specific
-Function = PAL_errno
-Name = Positive test PAL_errno API to retrieve the pre-thread errno value
-TYPE = DEFAULT
-EXE1 = pal_errno
-Description
-=Test the PAL_errno to retrieve a pointer to per-thread errno value
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- PAL_get_stderr.cpp
-)
-
-add_executable(paltest_pal_get_stderr_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_get_stderr_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_get_stderr_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_get_stderr_test1_paltest_pal_get_stderr_test1, "pal_specific/PAL_get_stderr/test1/paltest_pal_get_stderr_test1")
{
int err;
FILE *pPAL_stderr = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = PAL_Specific
-Function = PAL_get_stderr
-Name = Positive test PAL_get_stderr to retrieve the PAL standard error stream pointer
-TYPE = DEFAULT
-EXE1 = pal_get_stderr
-Description
-=Test the PAL_get_stderr to retrieve the PAL standard error output stream pointer and
-=output a test message to this error stream
-=this test case will be run both manually and automatically
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- PAL_get_stdin.cpp
-)
-
-add_executable(paltest_pal_get_stdin_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_get_stdin_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_get_stdin_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_get_stdin_test1_paltest_pal_get_stdin_test1, "pal_specific/PAL_get_stdin/test1/paltest_pal_get_stdin_test1")
{
int err;
FILE *pPAL_stdin = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = PAL_Specific
-Function = PAL_get_stdin
-Name = Positive test PAL_get_stdin to retrieve the PAL standard stdin stream pointer
-TYPE = DEFAULT
-EXE1 = pal_get_stdin
-Description
-=Test the PAL_get_stdin to retrieve the PAL standard input stream pointer
-=if success, display the input string to screen
-=this test case should be run manually
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- PAL_get_stdout.cpp
-)
-
-add_executable(paltest_pal_get_stdout_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_pal_get_stdout_test1 coreclrpal)
-
-target_link_libraries(paltest_pal_get_stdout_test1
- ${COMMON_TEST_LIBRARIES}
-)
**============================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[])
+PALTEST(pal_specific_PAL_get_stdout_test1_paltest_pal_get_stdout_test1, "pal_specific/PAL_get_stdout/test1/paltest_pal_get_stdout_test1")
{
int err;
FILE *pPAL_stdout = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = PAL_Specific
-Function = PAL_get_stdout
-Name = Positive test PAL_get_stdout to retrieve PAL standard output stream pointer
-TYPE = DEFAULT
-EXE1 = pal_get_stdout
-Description
-=Test the PAL_get_stdout to retrieve the PAL standard output stream pointer
-=This test case will be run both manually and automatically
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+/*=============================================================
+**
+** Source: paltests.cpp
+**
+** Purpose: Entrypoint for all the pal tests. Written to avoid any
+** standard library usage
+**
+**============================================================*/
+#include <palsuite.h>
+
+PALTest* PALTest::s_tests = 0;
+
+int PrintUsage(int argc, char *argv[])
+{
+ if (PAL_Initialize(argc, argv))
+ {
+ return FAIL;
+ }
+
+ printf("paltests <PrintPalTests|TestName>\n");
+ printf("Either print list of all paltests by passing PrintPalTests, or run a single PAL test.\n");
+
+ PAL_TerminateEx(FAIL);
+ return FAIL;
+}
+
+int PrintTests(int argc, char *argv[])
+{
+ if (PAL_Initialize(argc, argv))
+ {
+ return FAIL;
+ }
+
+ PALTest *testCur = PALTest::s_tests;
+ for (;testCur != 0; testCur = testCur->_next)
+ {
+ printf("%s\n", testCur->_name);
+ }
+ PAL_Terminate();
+ return PASS;
+}
+
+int __cdecl main(int argc, char *argv[])
+{
+ if (argc < 2)
+ {
+ return PrintUsage(argc, argv);
+ }
+
+ if (strcmp(argv[1], "PrintPalTests") == 0)
+ {
+ return PrintTests(argc, argv);
+ }
+
+ PALTest *testCur = PALTest::s_tests;
+ for (;testCur != 0; testCur = testCur->_next)
+ {
+ int i = 0;
+ bool stringMatches = strcmp(testCur->_name, argv[1]) == 0;
+ if (!stringMatches)
+ continue;
+
+ for (int i = 1; i < (argc - 1); i++)
+ {
+ argv[i] = argv[i + 1];
+ }
+
+ return testCur->_entrypoint(argc - 1, argv);
+ }
+
+ return PrintUsage(argc, argv);
+}
--- /dev/null
+<?xml version="1.0" ?>
+<Project DefaultTargets = "ProducePALTestList" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="../../../Directory.Build.props" />
+ <Import Project="issues.targets" />
+ <Target Name="ProducePALTestList">
+ <ReadLinesFromFile File="paltestlist.txt">
+ <Output TaskParameter="Lines" ItemName="PALTestListFromFile"/>
+ </ReadLinesFromFile>
+
+ <ItemGroup>
+ <InitialTrimTestList Include="@(PALTestListFromFile->Trim())" />
+ <FilteredTestList Include="@(InitialTrimTestList)" Condition="'%(Identity)' != '' and !@(InitialTrimTestList->StartsWith('#'))"/>
+ <FilteredTestList Remove="@(ExcludeList)" />
+ </ItemGroup>
+
+ <WriteLinesToFile File="$(BinDir)paltests/paltestlist.txt"
+ Lines="@(FilteredTestList)"
+ Overwrite="true"
+ WriteOnlyWhenDifferent="true"/>
+ </Target>
+</Project>
\ No newline at end of file
if [ $# -lt 1 -o $# -gt 3 ]
then
echo "Usage..."
- echo "runpaltests.sh <path to root build directory> [<path to temp folder for PAL tests>]"
+ echo "runpaltests.sh <path to root build directory of the pal tests> [<path to test output folder>] [<path to temp folder for PAL tests>]"
echo
echo "For example:"
echo "runpaltests.sh /projectk/build/debug"
echo
# Store the location of the root of build directory
-BUILD_ROOD_DIR=$1
+BUILD_ROOT_DIR=$1
+if [ -d "$(pwd)/$BUILD_ROOT_DIR" ]; then
+ BUILD_ROOT_DIR="$(pwd)/$BUILD_ROOT_DIR"
+fi
+
# Create path to the compiled PAL tets in the build directory
-PAL_TEST_BUILD=$BUILD_ROOD_DIR/src/pal/tests/palsuite
+PAL_TEST_BUILD=$BUILD_ROOT_DIR
echo Running PAL tests from $PAL_TEST_BUILD
+pushd $BUILD_ROOT_DIR
+
+export LD_LIBRARY_PATH=$BUILD_ROOT_DIR:$LD_LIBRARY_PATH
+
# Create absolute path to the file that contains a list of PAL tests to execute.
# This file is located next to this script in the source tree
RELATIVE_PATH_TO_PAL_TESTS=$0
cd $RELATIVE_PATH_TO_PAL_TESTS
# Environment variable PWD contains absolute path to the current folder
# so use it to create absolute path to the file with a list of tests.
-PAL_TEST_LIST=$PWD/paltestlist.txt
+PAL_TEST_LIST=$BUILD_ROOT_DIR/paltestlist.txt
# Change current directory back to the original location
-cd $OLDPWD
echo The list of PAL tests to run will be read from $PAL_TEST_LIST
# Create the test output root directory
-mkdir -p /tmp/PalTestOutput
-if [ ! -d /tmp/PalTestOutput ]; then
- rm -f -r /tmp/PalTestOutput
+if [ $# -gt 2 ]
+then
+ PAL_TEST_OUTPUT_DIR=$3
+ mkdir -p $PAL_TEST_OUTPUT_DIR
+else
mkdir -p /tmp/PalTestOutput
+ if [ ! -d /tmp/PalTestOutput ]; then
+ rm -f -r /tmp/PalTestOutput
+ mkdir -p /tmp/PalTestOutput
+ fi
+ PAL_TEST_OUTPUT_DIR=/tmp/PalTestOutput/default
fi
# Determine the folder to use for PAL test output during the run, and the folder where output files were requested to be copied.
# First check if the output folder was passed as a parameter to the script. It is supposed be the second parameter so check if
# we have more than 1 argument.
-PAL_TEST_OUTPUT_DIR=/tmp/PalTestOutput/default
if [ $# -gt 1 ]
then
COPY_TO_TEST_OUTPUT_DIR=$2
fi
# Determine the folder to use for PAL test output during the run
-if [ "$COPY_TO_TEST_OUTPUT_DIR" != "$PAL_TEST_OUTPUT_DIR" ]; then
- # Output files were requested to be copied to a specific folder. In this mode, we need to support parallel runs of PAL tests
- # on the same machine. Make a unique temp folder for working output inside /tmp/PalTestOutput.
- PAL_TEST_OUTPUT_DIR=$(mktemp -d /tmp/PalTestOutput/tmp.XXXXXXXX)
+if [ ! $# -gt 2 ]
+then
+ if [ "$COPY_TO_TEST_OUTPUT_DIR" != "$PAL_TEST_OUTPUT_DIR" ]; then
+ # Output files were requested to be copied to a specific folder. In this mode, we need to support parallel runs of PAL tests
+ # on the same machine. Make a unique temp folder for working output inside $PAL_TEST_RESULTS_DIR.
+ PAL_TEST_OUTPUT_DIR=$(mktemp -d /tmp/PalTestOutput/tmp.XXXXXXXX)
+ fi
fi
+cd $PAL_TEST_OUTPUT_DIR
+
echo PAL tests will store their temporary files and output in $PAL_TEST_OUTPUT_DIR.
if [ "$COPY_TO_TEST_OUTPUT_DIR" != "$PAL_TEST_OUTPUT_DIR" ]; then
echo Output files will be copied to $COPY_TO_TEST_OUTPUT_DIR at the end.
# Create path to a test executable to run
TEST_COMMAND="$PAL_TEST_BUILD/$TEST_NAME"
+ if [ ! -f $TEST_COMMAND ]; then
+ TEST_COMMAND="$PAL_TEST_BUILD/paltests $TEST_NAME"
+ fi
+
echo -n .
+ STARTTIME=$(date +%s)
# Redirect to temp file
$TEST_COMMAND 2>&1 | tee ${PAL_OUT_FILE} ; ( exit ${PIPESTATUS[0]} )
-
# Get exit code of the test process.
TEST_EXIT_CODE=$?
+ ENDTIME=$(date +%s)
+
# Change back to the output directory, and remove the test's working directory if it's empty
cd $PAL_TEST_OUTPUT_DIR
rmdir $TEST_WORKING_DIR 2>/dev/null
TEST_XUNIT_NAME=$(echo $TEST_XUNIT_NAME | tr / .)
TEST_XUNIT_CLASSNAME=$(echo $TEST_XUNIT_CLASSNAME | tr / .)
- echo -n "<test name=\"$TEST_XUNIT_CLASSNAME.$TEST_XUNIT_NAME\" type=\"$TEST_XUNIT_CLASSNAME\" method=\"$TEST_XUNIT_NAME\" result=\"" >> $PAL_XUNIT_TEST_LIST_TMP
+ echo -n "<test name=\"$TEST_XUNIT_CLASSNAME.$TEST_XUNIT_NAME\" type=\"$TEST_XUNIT_CLASSNAME\" method=\"$TEST_XUNIT_NAME\" time=\"$(($ENDTIME - $STARTTIME))\" result=\"" >> $PAL_XUNIT_TEST_LIST_TMP
# If the exit code is 0 then the test passed, otherwise record a failure.
if [ "$TEST_EXIT_CODE" -eq "0" ]; then
echo "Fail\" >" >> $PAL_XUNIT_TEST_LIST_TMP
echo "<failure exception-type=\"Exit code: $TEST_EXIT_CODE\">" >> $PAL_XUNIT_TEST_LIST_TMP
echo "<message><![CDATA[$(cat $PAL_OUT_FILE)]]></message>" >> $PAL_XUNIT_TEST_LIST_TMP
+ echo "<output><![CDATA[$(cat $PAL_OUT_FILE)]]></output>" >> $PAL_XUNIT_TEST_LIST_TMP
echo "</failure>" >> $PAL_XUNIT_TEST_LIST_TMP
echo "</test>" >> $PAL_XUNIT_TEST_LIST_TMP
FAILED_TEST="$TEST_NAME. Exit code: $TEST_EXIT_CODE"
echo Copied PAL test output files to $COPY_TO_TEST_OUTPUT_DIR.
fi
+popd
+
# Set exit code to be equal to the number PAL tests that have failed.
# Exit code 0 indicates success.
exit $NUMBER_OF_FAILED_TESTS
--- /dev/null
+#!/usr/bin/env bash
+#
+# This script executes the PAL tests from the specified build location.
+#
+cd $HELIX_WORKITEM_ROOT
+
+TEST_OUTPUT_DIR_HELIX=$HELIX_WORKITEM_ROOT/testoutput
+$HELIX_WORKITEM_ROOT/runpaltests.sh $HELIX_WORKITEM_ROOT $HELIX_WORKITEM_ROOT/testoutput $HELIX_WORKITEM_ROOT/testoutputtmp
+exit_code_paltests=$?
+cp $TEST_OUTPUT_DIR_HELIX/pal_tests.xml $HELIX_WORKITEM_ROOT/testResults.xml
+exit $exit_code_paltests
\ No newline at end of file
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_samples_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_samples_test1 coreclrpal)
-
-target_link_libraries(paltest_samples_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(samples_test1_paltest_samples_test1, "samples/test1/paltest_samples_test1")
{
/* Initialize the PAL.
*/
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Samples
-Function = sample
-Name = Sample Test #1
-TYPE = DEFAULT
-EXE1 = test
-Description
-=This is a sample test case. It will always pass.
-
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_samples_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_samples_test2 coreclrpal)
-
-target_link_libraries(paltest_samples_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(samples_test2_paltest_samples_test2, "samples/test2/paltest_samples_test2")
{
int exampleInt = 9;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Samples
-Function = sample
-Name = Sample Test #2
-TYPE = DEFAULT
-EXE1 = test
-Description
-=This is a sample test case. It will always fail.
-
+++ /dev/null
-add_subdirectory(CreateEventW)
-add_subdirectory(CreateMutexW_ReleaseMutex)
-add_subdirectory(CreateProcessW)
-add_subdirectory(CreateSemaphoreW_ReleaseSemaphore)
-add_subdirectory(CreateThread)
-add_subdirectory(CriticalSectionFunctions)
-add_subdirectory(DuplicateHandle)
-add_subdirectory(ExitProcess)
-add_subdirectory(ExitThread)
-add_subdirectory(GetCurrentProcess)
-add_subdirectory(GetCurrentProcessId)
-add_subdirectory(GetCurrentThread)
-add_subdirectory(GetCurrentThreadId)
-add_subdirectory(GetExitCodeProcess)
-add_subdirectory(GetProcessTimes)
-add_subdirectory(GetThreadTimes)
-add_subdirectory(NamedMutex)
-add_subdirectory(OpenEventW)
-add_subdirectory(OpenProcess)
-add_subdirectory(QueryThreadCycleTime)
-add_subdirectory(QueueUserAPC)
-add_subdirectory(ReleaseMutex)
-add_subdirectory(releasesemaphore)
-add_subdirectory(ResetEvent)
-add_subdirectory(ResumeThread)
-add_subdirectory(SetErrorMode)
-add_subdirectory(SetEvent)
-add_subdirectory(SignalObjectAndWait)
-add_subdirectory(Sleep)
-add_subdirectory(SleepEx)
-add_subdirectory(SwitchToThread)
-add_subdirectory(TerminateProcess)
-add_subdirectory(ThreadPriority)
-add_subdirectory(WaitForMultipleObjects)
-add_subdirectory(WaitForMultipleObjectsEx)
-add_subdirectory(WaitForSingleObject)
-add_subdirectory(YieldProcessor)
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_createeventw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createeventw_test1 coreclrpal)
-
-target_link_libraries(paltest_createeventw_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-BOOL CreateEventTest()
+BOOL CreateEventTest_CreateEvent_test1()
{
BOOL bRet = FALSE;
DWORD dwRet = 0;
return bRet;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CreateEventW_test1_paltest_createeventw_test1, "threading/CreateEventW/test1/paltest_createeventw_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
return ( FAIL );
}
- if(!CreateEventTest())
+ if(!CreateEventTest_CreateEvent_test1())
{
Fail ("Test failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateEventW
-Name = Positive Test for CreateEventW
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for CreateEventW. Create an event, ensure the
-= HANDLE is valid. Then check to ensure that the object is in the
-= signaled state. Close the HANDLE and done.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_createeventw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_createeventw_test2 coreclrpal)
-
-target_link_libraries(paltest_createeventw_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-BOOL CreateEventTest()
+BOOL CreateEventTest_CreateEvent_test2()
{
BOOL bRet = FALSE;
DWORD dwRet = 0;
return bRet;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CreateEventW_test2_paltest_createeventw_test2, "threading/CreateEventW/test2/paltest_createeventw_test2")
{
if(0 != (PAL_Initialize(argc, argv)))
{
return ( FAIL );
}
- if(!CreateEventTest())
+ if(!CreateEventTest_CreateEvent_test2())
{
Fail ("Test failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateEventW
-Name = Positive Test for CreateEventW
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test for CreateEvent. Create the event with the
-= initial state being not signaled. Check to ensure that it
-= times out when the event is triggered.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_createeventw_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_createeventw_test3 coreclrpal)
-
-target_link_libraries(paltest_createeventw_test3
- ${COMMON_TEST_LIBRARIES}
-)
BOOL bResult;
};
-struct testCase testCases[]=
+PALTEST(threading_CreateEventW_test3_paltest_createeventw_test3, "threading/CreateEventW/test3/paltest_createeventw_test3")
{
- {0, TRUE, FALSE, {'\0'}, 0, ERROR_SUCCESS, PASS},
- {0, TRUE, FALSE, {'\0'}, 5, ERROR_SUCCESS, PASS},
- {0, TRUE, FALSE, {'\0'}, 5, ERROR_ALREADY_EXISTS, PASS},
- {0, TRUE, FALSE, {'\0'}, 6, ERROR_INVALID_HANDLE, PASS},
- {0, TRUE, FALSE, {'\0'}, MAX_PATH - 1 - 60, ERROR_SUCCESS, PASS},
- {0, TRUE, FALSE, {'\0'}, MAX_PATH - 60, ERROR_SUCCESS, PASS},
-};
-
-static HANDLE hEvent[sizeof(testCases)/sizeof(struct testCase)];
+ struct testCase testCases[]=
+ {
+ {0, TRUE, FALSE, {'\0'}, 0, ERROR_SUCCESS, PASS},
+ {0, TRUE, FALSE, {'\0'}, 5, ERROR_SUCCESS, PASS},
+ {0, TRUE, FALSE, {'\0'}, 5, ERROR_ALREADY_EXISTS, PASS},
+ {0, TRUE, FALSE, {'\0'}, 6, ERROR_INVALID_HANDLE, PASS},
+ {0, TRUE, FALSE, {'\0'}, MAX_PATH - 1 - 60, ERROR_SUCCESS, PASS},
+ {0, TRUE, FALSE, {'\0'}, MAX_PATH - 60, ERROR_SUCCESS, PASS},
+ };
-DWORD result[sizeof(testCases)/sizeof(struct testCase)];
+ HANDLE hEvent[sizeof(testCases)/sizeof(struct testCase)];
-int __cdecl main(int argc, char **argv)
-{
+ DWORD result[sizeof(testCases)/sizeof(struct testCase)];
BOOL bRet = TRUE;
WCHAR nonEventName[] = {'a','a','a','a','a','a','\0'};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateEventW
-Name = Positive Test for CreateEventW
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests for CreateEventW. Create an unnamed event, create
-= an event with an empty name, create an event with a name longer than
-= MAX_PATH, MAX_PATH + 1, create an event with a name already taken
-= by a non-event object, create an event with a name already taken
-= by an event object.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- CreateMutexW.cpp
-)
-
-add_executable(paltest_createmutexw_releasemutex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createmutexw_releasemutex_test1 coreclrpal)
-
-target_link_libraries(paltest_createmutexw_releasemutex_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define OP_NONE 2
-HANDLE hMutex; /* handle to mutex */
+static HANDLE hMutex; /* handle to mutex */
-BOOL bProdErr; /* Producer error Flag */
-BOOL bConErr; /* Consumer error Flag */
+static BOOL bProdErr; /* Producer error Flag */
+static BOOL bConErr; /* Consumer error Flag */
/* Test Buffer */
-char Buffer[MAIN_BUF_SIZE];
+static char Buffer[MAIN_BUF_SIZE];
/*
* EmptyBuffer implements the empty operation for test buffer.
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_CreateMutexW_ReleaseMutex_test1_paltest_createmutexw_releasemutex_test1, "threading/CreateMutexW_ReleaseMutex/test1/paltest_createmutexw_releasemutex_test1")
{
DWORD dwThreadId;
DWORD dwWaitRet;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateMutexW / ReleaseMutex
-Name = Positive Test for CreateMutexW and ReleaseMutex
-TYPE = DEFAULT
-EXE1 = createmutexw
-Description
-= This test cases test whether a Mutex object created
-= with CreateMutexW really works by mutually excluding
-= threads from accessing a data structure at the same
-= time. Here we have a buffer that can be filled or
-= emptied, we use a Mutex object to ensure that one
-= operation cannot be started until the other is
-= finished. If one operation detects that the other
-= has not finished, it fails. There is a Producer
-= thread which will try to fill the buffer 25 times,
-= and a consumer thread which try to empty the buffer
-= 25 times. If either the fill or empty operations
-= fails because the Mutex failed to mutually exclude
-= then, the corresponding thread will set an error
-= flag and return. This will cause the test case to
-= fail.
-= To increase the probability of identifying problems,
-= the Fill opeartion has been slowed dowm with a call
-= to Sleep. This ensures that one operation will try
-= to access the shared buffer while the other is in
-= progress.
-= NOTE: this test case also serves as a test case for
-= WaitForSingleObject.
+++ /dev/null
-set(SOURCES
- CreateMutexW.cpp
-)
-
-add_executable(paltest_createmutexw_releasemutex_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_createmutexw_releasemutex_test2 coreclrpal)
-
-target_link_libraries(paltest_createmutexw_releasemutex_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define UNICODE
#include <palsuite.h>
-const char *szMutex = "MyMutex";
-const char *szEmpty = "";
+#define szMutex "MyMutex"
+#define szEmpty ""
/* Function Prototypes */
-BOOL TestNamedMutex(const char *szMutexName);
-DWORD NamedMutexThread(LPVOID lpParam);
-BOOL NegativeReleaseMutexTests();
+BOOL TestNamedMutex_CreateMutexW_ReleaseMutex_test2(const char *szMutexName);
+DWORD NamedMutexThread_CreateMutexW_ReleaseMutex_test2(LPVOID lpParam);
+BOOL NegativeReleaseMutexTests_CreateMutexW_ReleaseMutex_test2();
struct ThreadData
{
typedef struct ThreadData THREADDATA;
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_CreateMutexW_ReleaseMutex_test2_paltest_createmutexw_releasemutex_test2, "threading/CreateMutexW_ReleaseMutex/test2/paltest_createmutexw_releasemutex_test2")
{
BOOL bFailures = FALSE;
char *szMaxPath;
* Test named Mutexes with ordinary string
*/
- if (!TestNamedMutex(szMutex))
+ if (!TestNamedMutex_CreateMutexW_ReleaseMutex_test2(szMutex))
{
bFailures = TRUE;
}
* Test named Mutexes with empty ("") string
*/
- if (!TestNamedMutex(szEmpty))
+ if (!TestNamedMutex_CreateMutexW_ReleaseMutex_test2(szEmpty))
{
bFailures = TRUE;
}
memset(szMaxPath, 'A', MAX_LONGPATH-60);
szMaxPath[MAX_LONGPATH-60] = 0;
- if (!TestNamedMutex(szMaxPath))
+ if (!TestNamedMutex_CreateMutexW_ReleaseMutex_test2(szMaxPath))
{
bFailures = TRUE;
}
* Run some negative tests on ReleaseMutex
*/
- if (!NegativeReleaseMutexTests())
+ if (!NegativeReleaseMutexTests_CreateMutexW_ReleaseMutex_test2())
{
bFailures = TRUE;
}
* Try to get multiple handles to a named Mutex and test
* to make sure they actually refer to same Mutex object.
*/
-BOOL TestNamedMutex(const char *szMutexName)
+BOOL TestNamedMutex_CreateMutexW_ReleaseMutex_test2(const char *szMutexName)
{
DWORD dwData;
HANDLE hMutex1;
* Create a thread that will Wait on the second handle.
*/
threadData.hMutex = hMutex2;
- hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)NamedMutexThread,
+ hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)NamedMutexThread_CreateMutexW_ReleaseMutex_test2,
(LPVOID)&threadData, 0, &dwData);
if (NULL == hThread)
/*
* Thread function used with above testing function.
*/
-DWORD NamedMutexThread(LPVOID lpParam)
+DWORD NamedMutexThread_CreateMutexW_ReleaseMutex_test2(LPVOID lpParam)
{
BOOL bTimedOut = FALSE;
THREADDATA *lpThreadData = (THREADDATA *)lpParam;
*
* Try some negative tests on ReleaseMutex
*/
-BOOL NegativeReleaseMutexTests()
+BOOL NegativeReleaseMutexTests_CreateMutexW_ReleaseMutex_test2()
{
HANDLE hMutex;
BOOL bRet;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateMutexW / ReleaseMutex
-Name = Basic validity Tests for CreateMutexW / ReleaseMutex
-TYPE = DEFAULT
-EXE1 = createmutexw
-Description
-= This test case tests the following things
-= - Creation of named Mutexes
-= - Creating multiple handles to a single named Mutex
-= - Ensuring that these handles work interchangeably
-= - Setting bInitialOwnerFlag to TRUE will cause the
-= initial call to a Wait function on the same Mutex
-= to actually wait.
-= - Waiting on a Mutex that a thread already owns should
-= not block.
-= - Create Named mutex with empty string ("")
-= - Create Named mutex with string of MAX_PATH length
-= - Calling RelaseMutex with invalid Mutex handles and
-= valid but unowned Mutexes.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(TESTSOURCES
- parentProcess.cpp
-)
-
-add_executable(paltest_createprocessw_test1
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_createprocessw_test1 coreclrpal)
-
-target_link_libraries(paltest_createprocessw_test1
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- childProcess.cpp
-)
-
-add_executable(paltest_createprocessw_test1_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_createprocessw_test1_child coreclrpal)
-
-target_link_libraries(paltest_createprocessw_test1_child
- ${COMMON_TEST_LIBRARIES}
-)
const WCHAR szCommonFileW[] =
{'c','h','i','l','d','d','a','t','a','.','t','m','p','\0'};
-const WCHAR szPathDelimW[] = {'\\','\0'};
-
-const char *szCommonStringA = "058d2d057111a313aa82401c2e856002\0";
-
-/*
- * Take two wide strings representing file and directory names
- * (dirName, fileName), join the strings with the appropriate path
- * delimiter and populate a wide character buffer (absPathName) with
- * the resulting string.
- *
- * Returns: The number of wide characters in the resulting string.
- * 0 is returned on Error.
- */
-int
-mkAbsoluteFilenameW (
- LPWSTR dirName,
- DWORD dwDirLength,
- LPCWSTR fileName,
- DWORD dwFileLength,
- LPWSTR absPathName )
-{
- extern const WCHAR szPathDelimW[];
-
- DWORD sizeDN, sizeFN, sizeAPN;
-
- sizeDN = wcslen( dirName );
- sizeFN = wcslen( fileName );
- sizeAPN = (sizeDN + 1 + sizeFN + 1);
-
- /* insure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
- if ( sizeAPN > _MAX_PATH )
- {
- return ( 0 );
- }
-
- wcsncpy(absPathName, dirName, dwDirLength +1);
- wcsncpy(absPathName, szPathDelimW, 2);
- wcsncpy(absPathName, fileName, dwFileLength +1);
-
- return (sizeAPN);
-}
+#define szCommonStringA "058d2d057111a313aa82401c2e856002\0"
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_CreateProcessW_test1_paltest_createprocessw_test1_child, "threading/CreateProcessW/test1/paltest_createprocessw_test1_child")
{
static FILE * fp;
const WCHAR szCommonFileW[] =
{'c','h','i','l','d','d','a','t','a','.','t','m','p','\0'};
-const WCHAR szChildFileW[] = u"paltest_createprocessw_test1_child";
-
-const WCHAR szPathDelimW[] = {'\\','\0'};
-
-const char *szCommonStringA = "058d2d057111a313aa82401c2e856002\0";
-
-/*
- * Take two wide strings representing file and directory names
- * (dirName, fileName), join the strings with the appropriate path
- * delimiter and populate a wide character buffer (absPathName) with
- * the resulting string.
- *
- * Returns: The number of wide characters in the resulting string.
- * 0 is returned on Error.
- */
-int
-mkAbsoluteFilenameW (
- LPWSTR dirName,
- DWORD dwDirLength,
- LPCWSTR fileName,
- DWORD dwFileLength,
- LPWSTR absPathName )
-{
- extern const WCHAR szPathDelimW[];
+const WCHAR szChildFileW[] = u"threading/CreateProcessW/test1/paltest_createprocessw_test1_child";
- DWORD sizeDN, sizeFN, sizeAPN;
-
- sizeDN = wcslen( dirName );
- sizeFN = wcslen( fileName );
- sizeAPN = (sizeDN + 1 + sizeFN + 1);
-
- /* insure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
- if ( sizeAPN > _MAX_PATH )
- {
- return ( 0 );
- }
-
- wcsncpy(absPathName, dirName, dwDirLength +1);
- wcsncpy(absPathName, szPathDelimW, 2);
- wcsncpy(absPathName, fileName, dwFileLength +1);
-
- return (sizeAPN);
-
-}
+#define szCommonStringA "058d2d057111a313aa82401c2e856002\0"
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_CreateProcessW_test1_paltest_createprocessw_test1, "threading/CreateProcessW/test1/paltest_createprocessw_test1")
{
ZeroMemory ( &pi, sizeof(pi) );
szAbsPathNameW=&absPathBuf[0];
- dwFileLength = wcslen( szChildFileW );
dwDirLength = GetCurrentDirectory(_MAX_PATH, szDirNameW);
"current working directory\n. Exiting.\n");
}
- dwSize = mkAbsoluteFilenameW( szDirNameW, dwDirLength, szChildFileW,
- dwFileLength, szAbsPathNameW );
+ int mbwcResult = MultiByteToWideChar(CP_ACP, 0, argv[0], -1, szAbsPathNameW, sizeof(absPathBuf));
- if (0 == dwSize)
+ if (0 == mbwcResult)
{
- Fail ("Palsuite Code: mkAbsoluteFilename() call failed. Could "
- "not build absolute path name to file\n. Exiting.\n");
+ Fail ("Palsuite Code: MultiByteToWideChar() call failed. Exiting.\n");
}
+
+ wcscat(szAbsPathNameW, u" ");
+ wcscat(szAbsPathNameW, szChildFileW);
if ( !CreateProcessW ( NULL,
szAbsPathNameW,
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateProcessW
-Name = Positive Test for CreateProcessW
-TYPE = DEFAULT
-EXE1 = parentprocess
-EXE2 = childprocess
-Description
-= Test the CreateProcessW function. The test executes the childprocess
-= program. The childprocess program launches and writes a const char string
-= to a file childdata. The parent waits for the completion of childprocess
-= and then reads the string from the childdata file. If the string in the
-= file matches it's copy of the const char string, then the test succeeds.
+++ /dev/null
-set(TESTSOURCES
- parentprocess.cpp
-)
-
-add_executable(paltest_createprocessw_test2
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_createprocessw_test2 coreclrpal)
-
-target_link_libraries(paltest_createprocessw_test2
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- childprocess.cpp
-)
-
-add_executable(paltest_createprocessw_test2_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_createprocessw_test2_child coreclrpal)
-
-target_link_libraries(paltest_createprocessw_test2_child
- ${COMMON_TEST_LIBRARIES}
-)
#include "test2.h"
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_CreateProcessW_test2_paltest_createprocessw_test2_child, "threading/CreateProcessW/test2/paltest_createprocessw_test2_child")
{
int iRetCode = EXIT_OK_CODE; /* preset exit code to OK */
char szBuf[BUF_LEN];
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_CreateProcessW_test2_paltest_createprocessw_test2, "threading/CreateProcessW/test2/paltest_createprocessw_test2")
{
/*******************************************
si.hStdOutput = hTestStdOutW;
si.hStdError = hTestStdErrW;
- wcscpy(szFullPathNameW, szChildFileW);
+ int mbwcResult = MultiByteToWideChar(CP_ACP, 0, argv[0], -1, szFullPathNameW, sizeof(szFullPathNameW));
+
+ if (0 == mbwcResult)
+ {
+ Fail ("Palsuite Code: MultiByteToWideChar() call failed. Exiting.\n");
+ }
+
+ wcscat(szFullPathNameW, u" ");
+ wcscat(szFullPathNameW, szChildFileW);
+
wcscat(szFullPathNameW, szArgs);
/*******************************************
**=========================================================*/
-const WCHAR szChildFileW[] = u"paltest_createprocessw_test2_child";
+const WCHAR szChildFileW[] = u"threading/CreateProcessW/test2/paltest_createprocessw_test2_child";
const WCHAR szArgs[] = {' ',0x41,' ','B',' ','C','\0'};
const WCHAR szArg1[] = {0x41,'\0'};
const WCHAR szArg2[] = {'B','\0'};
const WCHAR szArg3[] = {'C','\0'};
-const char *szTestString = "An uninteresting test string (it works though)";
+#define szTestString "An uninteresting test string (it works though)"
const DWORD EXIT_OK_CODE = 100;
const DWORD EXIT_ERR_CODE1 = 101;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateProcessW
-Name = PROCESS_INFORMATION and HANDLE Inheritance
-TYPE = DEFAULT
-EXE1 = parentprocess
-EXE2 = childprocess
-Description
-= Test the following features of CreateProcessW:
-= - Check to see if hProcess & hThread are set in
-= return PROCESS_INFORMATION structure
-= - Check to see if stdin, stdout, & stderr handles
-= are used when STARTF_USESTDHANDLES is specified
-= in STARUPINFO flags and bInheritHandles = TRUE
-= - Check to see that proper arguments are passed to
-= child process
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- CreateSemaphore.cpp
-)
-
-add_executable(paltest_createsemaphorew_releasesemaphore_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createsemaphorew_releasesemaphore_test1 coreclrpal)
-
-target_link_libraries(paltest_createsemaphorew_releasesemaphore_test1
- ${COMMON_TEST_LIBRARIES}
-)
return 0;
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_CreateSemaphoreW_ReleaseSemaphore_test1_paltest_createsemaphorew_releasesemaphore_test1, "threading/CreateSemaphoreW_ReleaseSemaphore/test1/paltest_createsemaphorew_releasesemaphore_test1")
{
-
BufferStructure Buffer, *pBuffer;
pBuffer = &Buffer;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateSemaphoreExW / ReleaseSemaphore
-Name = Positive Test for CreateSemaphoreExW and ReleaseSemaphore
-TYPE = DEFAULT
-EXE1 = createsemaphore
-Description
-= Implementation of Producer / Consumer IPC problem using CreateSemaphoreExW
-= and ReleaseSemaphore functions. This test case exercises CreateSemaphoreExW
-= , ReleaseSemaphore, CreateThread and WaitForSingleObject functions.
-= Since there is no way to currently create "pseudo" random events in the
-= pal, this example does not behave as classic bounded buffers would. This
-= test case is designed to starve the consumer and have the producer fill
-= the buffer.
+++ /dev/null
-set(SOURCES
- CreateSemaphore.cpp
-)
-
-add_executable(paltest_createsemaphorew_releasesemaphore_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_createsemaphorew_releasesemaphore_test2 coreclrpal)
-
-target_link_libraries(paltest_createsemaphorew_releasesemaphore_test2
- ${COMMON_TEST_LIBRARIES}
-)
/*============================================================
**
-** Source: CreateSemaphoreW_ReleaseSemaphore/test1/CreateSemaphore.c
+** Source: CreateSemaphoreW_ReleaseSemaphore/test2/CreateSemaphore.c
**
** Purpose: Test Semaphore operation using classic IPC problem:
** "Producer-Consumer Problem".
#define _BUF_SIZE 10
-DWORD dwThreadId; /* consumer thread identifier */
+DWORD dwThreadId_CreateSemaphoreW_test2; /* consumer thread identifier */
-HANDLE hThread; /* handle to consumer thread */
+HANDLE hThread_CreateSemaphoreW_test2; /* handle to consumer thread */
-HANDLE hSemaphoreM; /* handle to mutual exclusion semaphore */
+HANDLE hSemaphoreM_CreateSemaphoreW_test2; /* handle to mutual exclusion semaphore */
-HANDLE hSemaphoreE; /* handle to semaphore that counts empty buffer slots */
+HANDLE hSemaphoreE_CreateSemaphoreW_test2; /* handle to semaphore that counts empty buffer slots */
-HANDLE hSemaphoreF; /* handle to semaphore that counts full buffer slots */
+HANDLE hSemaphoreF_CreateSemaphoreW_test2; /* handle to semaphore that counts full buffer slots */
typedef struct Buffer
{
} BufferStructure;
-CHAR producerItems[PRODUCTION_TOTAL + 1];
+CHAR producerItems_CreateSemaphoreW_test2[PRODUCTION_TOTAL + 1];
-CHAR consumerItems[PRODUCTION_TOTAL + 1];
+CHAR consumerItems_CreateSemaphoreW_test2[PRODUCTION_TOTAL + 1];
/*
* Read next message from the Buffer into provided pointer.
* Returns: 0 on failure, 1 on success.
*/
int
-readBuf(BufferStructure *Buffer, char *c)
+readBuf_CreateSemaphoreW_test2(BufferStructure *Buffer, char *c)
{
if( Buffer -> writeIndex == Buffer -> readIndex )
{
* Returns: 0 on failure, 1 on success.
*/
int
-writeBuf(BufferStructure *Buffer, CHAR c)
+writeBuf_CreateSemaphoreW_test2(BufferStructure *Buffer, CHAR c)
{
if( ( ((Buffer -> writeIndex) + 1) % _BUF_SIZE) ==
(Buffer -> readIndex) )
* Atomic decrement of semaphore value.
*/
VOID
-down(HANDLE hSemaphore)
+down_CreateSemaphoreW_test2(HANDLE hSemaphore)
{
switch ( (WaitForSingleObject (
hSemaphore,
- 10000)))
+ 10000))) /* Wait 10 seconds */
{
case WAIT_OBJECT_0: /*
- * Semaphore was signaled. OK to access semaphore.
+ * Semaphore was signaled. OK to access
+ * semaphore.
*/
break;
case WAIT_ABANDONED: /*
* Atomic increment of semaphore value.
*/
VOID
-up(HANDLE hSemaphore)
+up_CreateSemaphoreW_test2(HANDLE hSemaphore)
{
if (!ReleaseSemaphore (
hSemaphore,
}
/*
- * Sleep 10 milleseconds.
+ * Sleep 500 milleseconds.
*/
VOID
-consumerSleep(VOID)
+consumerSleep_CreateSemaphoreW_test2(VOID)
{
Sleep(10);
}
/*
- * Sleep 500 milleseconds.
+ * Sleep between 10 milleseconds.
*/
VOID
-producerSleep(VOID)
+producerSleep_CreateSemaphoreW_test2(VOID)
{
Sleep(500);
}
* Produce a message and write the message to Buffer.
*/
VOID
-producer(BufferStructure *Buffer)
+producer_CreateSemaphoreW_test2(BufferStructure *Buffer)
{
int n = 0;
{
c = 'A' + n ; /* Produce Item */
- down(hSemaphoreE);
- down(hSemaphoreM);
+ down_CreateSemaphoreW_test2(hSemaphoreE_CreateSemaphoreW_test2);
+ down_CreateSemaphoreW_test2(hSemaphoreM_CreateSemaphoreW_test2);
- if (writeBuf(Buffer, c))
+ if (writeBuf_CreateSemaphoreW_test2(Buffer, c))
{
Trace("Producer produces %c.\n", c);
fflush(stdout);
- producerItems[n++] = c;
+ producerItems_CreateSemaphoreW_test2[n++] = c;
}
- up(hSemaphoreM);
- up(hSemaphoreF);
+ up_CreateSemaphoreW_test2(hSemaphoreM_CreateSemaphoreW_test2);
+ up_CreateSemaphoreW_test2(hSemaphoreF_CreateSemaphoreW_test2);
- producerSleep();
+ producerSleep_CreateSemaphoreW_test2();
}
+
return;
}
*/
DWORD
PALAPI
-consumer( LPVOID lpParam )
+consumer_CreateSemaphoreW_test2( LPVOID lpParam )
{
int n = 0;
char c;
- consumerSleep();
+ consumerSleep_CreateSemaphoreW_test2();
while (n < PRODUCTION_TOTAL)
{
- down(hSemaphoreF);
- down(hSemaphoreM);
+ down_CreateSemaphoreW_test2(hSemaphoreF_CreateSemaphoreW_test2);
+ down_CreateSemaphoreW_test2(hSemaphoreM_CreateSemaphoreW_test2);
- if (readBuf((BufferStructure*)lpParam, &c))
+ if (readBuf_CreateSemaphoreW_test2((BufferStructure*)lpParam, &c))
{
Trace("\tConsumer consumes %c.\n", c);
fflush(stdout);
- consumerItems[n++] = c;
+ consumerItems_CreateSemaphoreW_test2[n++] = c;
}
- up(hSemaphoreM);
- up(hSemaphoreE);
+ up_CreateSemaphoreW_test2(hSemaphoreM_CreateSemaphoreW_test2);
+ up_CreateSemaphoreW_test2(hSemaphoreE_CreateSemaphoreW_test2);
- consumerSleep();
+ consumerSleep_CreateSemaphoreW_test2();
}
+
return 0;
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_CreateSemaphoreW_ReleaseSemaphore_test2_paltest_createsemaphorew_releasesemaphore_test2, "threading/CreateSemaphoreW_ReleaseSemaphore/test2/paltest_createsemaphorew_releasesemaphore_test2")
{
-
BufferStructure Buffer, *pBuffer;
pBuffer = &Buffer;
/*
* Create Semaphores
*/
- hSemaphoreM = CreateSemaphoreExW (
+ hSemaphoreM_CreateSemaphoreW_test2 = CreateSemaphoreExW (
NULL,
1,
1,
0,
0);
- if ( NULL == hSemaphoreM )
+ if ( NULL == hSemaphoreM_CreateSemaphoreW_test2 )
{
- Fail ( "hSemaphoreM = CreateSemaphoreExW () - returned NULL\n"
+ Fail ( "hSemaphoreM_CreateSemaphoreW_test2 = CreateSemaphoreExW () - returned NULL\n"
"Failing Test.\n");
}
- hSemaphoreE = CreateSemaphoreExW (
+ hSemaphoreE_CreateSemaphoreW_test2 = CreateSemaphoreExW (
NULL,
_BUF_SIZE ,
_BUF_SIZE ,
0,
0);
- if ( NULL == hSemaphoreE )
+ if ( NULL == hSemaphoreE_CreateSemaphoreW_test2 )
{
- Fail ( "hSemaphoreE = CreateSemaphoreExW () - returned NULL\n"
+ Fail ( "hSemaphoreE_CreateSemaphoreW_test2 = CreateSemaphoreExW () - returned NULL\n"
"Failing Test.\n");
}
- hSemaphoreF = CreateSemaphoreExW (
+ hSemaphoreF_CreateSemaphoreW_test2 = CreateSemaphoreExW (
NULL,
0,
_BUF_SIZE ,
0,
0);
- if ( NULL == hSemaphoreF )
+ if ( NULL == hSemaphoreF_CreateSemaphoreW_test2 )
{
- Fail ( "hSemaphoreF = CreateSemaphoreExW () - returned NULL\n"
+ Fail ( "hSemaphoreF_CreateSemaphoreW_test2 = CreateSemaphoreExW () - returned NULL\n"
"Failing Test.\n");
}
/*
* Create Consumer
*/
- hThread = CreateThread(
+ hThread_CreateSemaphoreW_test2 = CreateThread(
NULL,
0,
- consumer,
+ consumer_CreateSemaphoreW_test2,
&Buffer,
0,
- &dwThreadId);
+ &dwThreadId_CreateSemaphoreW_test2);
- if ( NULL == hThread )
+ if ( NULL == hThread_CreateSemaphoreW_test2 )
{
Fail ( "CreateThread() returned NULL. Failing test.\n");
}
/*
* Start producing
*/
- producer(pBuffer);
+ producer_CreateSemaphoreW_test2(pBuffer);
/*
* Wait for consumer to complete
*/
- WaitForSingleObject (hThread, INFINITE);
+ WaitForSingleObject (hThread_CreateSemaphoreW_test2, INFINITE);
- if ( 0 != strncmp (producerItems, consumerItems, PRODUCTION_TOTAL) )
+ if ( 0 != strncmp (producerItems_CreateSemaphoreW_test2, consumerItems_CreateSemaphoreW_test2, PRODUCTION_TOTAL) )
{
- Fail("The producerItems string %s\n and the consumerItems string "
+ Fail("The producerItems_CreateSemaphoreW_test2 string %s\n and the consumerItems_CreateSemaphoreW_test2 string "
"%s\ndo not match. This could be a problem with the strncmp()"
" function\n FailingTest\nGetLastError() returned %d\n",
- producerItems, consumerItems, GetLastError());
+ producerItems_CreateSemaphoreW_test2, consumerItems_CreateSemaphoreW_test2, GetLastError());
}
- Trace ("producerItems and consumerItems arrays match. All %d\nitems "
+ Trace ("producerItems_CreateSemaphoreW_test2 and consumerItems_CreateSemaphoreW_test2 arrays match. All %d\nitems "
"were produced and consumed in order.\nTest passed.\n",
PRODUCTION_TOTAL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateSemaphoreExW / ReleaseSemaphore
-Name = Positive Test for CreateSemaphoreExW and ReleaseSemaphore
-TYPE = DEFAULT
-EXE1 = createsemaphore
-Description
-= Implementation of Producer / Consumer IPC problem using CreateSemaphoreExW
-= and ReleaseSemaphore functions. This test case exercises CreateSemaphoreExW
-= , ReleaseSemaphore, CreateThread and WaitForSingleObject functions.
-= Since there is no way to currently create "pseudo" random events in the
-= pal, this example does not behave as classic bounded buffers would. This
-= test case is designed to starve the producer and have the consumer fill
-= the buffer.
+++ /dev/null
-set(SOURCES
- createsemaphore.cpp
-)
-
-add_executable(paltest_createsemaphorew_releasesemaphore_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_createsemaphorew_releasesemaphore_test3 coreclrpal)
-
-target_link_libraries(paltest_createsemaphorew_releasesemaphore_test3
- ${COMMON_TEST_LIBRARIES}
-)
BOOL bNegativeTest;
};
-struct testcase testCases[] =
+struct testcase testCases_CreateSemaphoreW_ReleaseSemaphore_test3[] =
{
{NULL, -1, 1, NULL, TRUE},
{NULL, 1, -1, NULL, TRUE},
{NULL, INT_MAX, INT_MAX, NULL, FALSE}
};
-HANDLE hSemaphore[sizeof(testCases)/sizeof(struct testcase)];
+HANDLE hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[sizeof(testCases_CreateSemaphoreW_ReleaseSemaphore_test3)/sizeof(struct testcase)];
-BOOL cleanup(int index)
+BOOL cleanup_ReleaseSemaphore_test3(int index)
{
int i;
BOOL bRet = TRUE;
for (i = 0; i < index; i++)
{
- if (!CloseHandle(hSemaphore[i]))
+ if (!CloseHandle(hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i]))
{
bRet = FALSE;
Trace("PALSUITE ERROR: CloseHandle(%p) call failed for index %d\n",
- hSemaphore[i], i);
+ hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], i);
}
}
return(bRet);
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_CreateSemaphoreW_ReleaseSemaphore_test3_paltest_createsemaphorew_releasesemaphore_test3, "threading/CreateSemaphoreW_ReleaseSemaphore/test3/paltest_createsemaphorew_releasesemaphore_test3")
{
int i;
int j;
return (FAIL);
}
/* create semaphores */
- for (i = 0; i < sizeof(testCases)/sizeof(struct testcase); i++)
+ testcase* testCases = testCases_CreateSemaphoreW_ReleaseSemaphore_test3;
+
+ for (i = 0; i < sizeof(testCases_CreateSemaphoreW_ReleaseSemaphore_test3)/sizeof(struct testcase); i++)
{
- hSemaphore[i] = CreateSemaphoreExW (testCases[i].lpSemaphoreAttributes,
+ hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i] = CreateSemaphoreExW (testCases[i].lpSemaphoreAttributes,
testCases[i].lInitialCount,
testCases[i].lMaximumCount,
testCases[i].lpName,
0,
0);
- if (NULL == hSemaphore[i])
+ if (NULL == hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i])
{
if (!testCases[i].bNegativeTest)
{
testCases[i].lpName, i, GetLastError());
if (i > 0)
{
- cleanup(i - 1);
+ cleanup_ReleaseSemaphore_test3(i - 1);
}
Fail("");
}
{
/* Call ReleaseSemaphore once more to ensure ReleaseSemaphore
fails */
- if(ReleaseSemaphore(hSemaphore[i], 1, NULL))
+ if(ReleaseSemaphore(hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 1, NULL))
{
Trace("PALSUITE ERROR: ReleaseSemaphore('%p' '%ld' '%p') "
"call returned %d\nwhen it should have returned "
"%d.\nThe semaphore's count was %d.\nGetLastError "
- "returned %d.\n", hSemaphore[i], 1, NULL, TRUE,
+ "returned %d.\n", hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 1, NULL, TRUE,
+
FALSE, j, GetLastError());
- cleanup(i);
+ cleanup_ReleaseSemaphore_test3(i);
Fail("");
}
}
else
{
int previous;
- BOOL bRet = ReleaseSemaphore(hSemaphore[i], 1, &previous);
+ BOOL bRet = ReleaseSemaphore(hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 1, &previous);
DWORD dwError = GetLastError();
if(!bRet)
"call returned %d\nwhen it should have returned "
"%d.\nThe semaphore count was %d and it's "
"lMaxCount was %d.\nGetLastError returned %d.\n",
- hSemaphore[i], 1, &previous, bRet, TRUE, j,
+ hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 1, &previous, bRet, TRUE, j,
testCases[i].lMaximumCount, dwError);
- cleanup(i);
+ cleanup_ReleaseSemaphore_test3(i);
Fail("");
}
if (previous != j)
Trace("PALSUITE ERROR: ReleaseSemaphore('%p' '%ld' '%p') "
"call set %p to %d instead of %d.\n The semaphore "
"count was %d and GetLastError returned %d.\n",
- hSemaphore[i], 1, &previous, &previous, previous,
+ hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 1, &previous, &previous, previous,
j, j, dwError);
- cleanup(i);
+ cleanup_ReleaseSemaphore_test3(i);
Fail("");
}
}
/* decrement semaphore count to 0 */
for (j = testCases[i].lMaximumCount; j >= 0; j--)
{
- DWORD dwRet = WaitForSingleObject(hSemaphore[i], 0);
+ DWORD dwRet = WaitForSingleObject(hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 0);
DWORD dwError = GetLastError();
if (0 == j)
Trace("PALSUITE ERROR: WaitForSingleObject('%p' '%u') "
"call returned %d\nwhen it should have returned "
"%d.\nThe semaphore's count was %d.\nGetLastError "
- "returned %d.\n", hSemaphore[i], 0, dwRet,
+ "returned %d.\n", hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 0, dwRet,
WAIT_TIMEOUT, j, dwError);
- cleanup(i);
+ cleanup_ReleaseSemaphore_test3(i);
Fail("");
}
}
Trace("PALSUITE ERROR: WaitForSingleObject('%p' '%u') "
"call returned %d\nwhen it should have returned "
"%d.\nThe semaphore's count was %d.\nGetLastError "
- "returned %d.\n", hSemaphore[i], 0, dwRet,
+ "returned %d.\n", hSemaphore_CreateSemaphoreW_ReleaseSemaphore_test3[i], 0, dwRet,
WAIT_OBJECT_0, j, dwError);
- cleanup(i);
+ cleanup_ReleaseSemaphore_test3(i);
Fail("");
}
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateSemaphoreExW / ReleaseSemaphore
-Name = Positive Test for CreateSemaphoreExW and ReleaseSemaphore
-TYPE = DEFAULT
-EXE1 = createsemaphore
-Description
-= Test attributes of CreateSemaphoreExW and ReleaseSemaphore.
-= Insure for CreateSemaphore that lInitialCount and lMaximumCount
-= constraints are respected. Validate that CreateSemaphore rejects
-= conditions where, initial count and / or maximum count are negative
-= and conditions where the initial count is greater than the maximum
-= count. For ReleaseSemaphore validate that lpPreviousCount gets set
-= to the previous semaphore count and lpPreviousCount can be NULL.
-= Also establish ReleaseSemaphore fails when called in a semaphore
-= with count equal to lMaximumCount.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_createthread_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_createthread_test1 coreclrpal)
-
-target_link_libraries(paltest_createthread_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CreateThread_test1_paltest_createthread_test1, "threading/CreateThread/test1/paltest_createthread_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateThread
-Name = Positive Test for CreateThread
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for CreateThread. Call CreateThread and ensure
-= that it succeeds. Also check to ensure the paramater is passed
-= properly.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_createthread_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_createthread_test2 coreclrpal)
-
-target_link_libraries(paltest_createthread_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define NUM_TESTS 3
-HANDLE hThread[NUM_TESTS];
-DWORD dwThreadId[NUM_TESTS];
-volatile BOOL bResult[NUM_TESTS];
-volatile DWORD dwThreadId1[NUM_TESTS];
+HANDLE hThread_CreateThread_test2[NUM_TESTS];
+DWORD dwThreadId_CreateThread_test2[NUM_TESTS];
+volatile BOOL bResult_CreateThread_test2[NUM_TESTS];
+volatile DWORD dwThreadId1_CreateThread_test2[NUM_TESTS];
-DWORD PALAPI Thread( LPVOID lpParameter)
+DWORD PALAPI Thread_CreateThread_test2( LPVOID lpParameter)
{
- dwThreadId1[(DWORD)(SIZE_T)lpParameter] = GetCurrentThreadId();
- bResult[(DWORD)(SIZE_T) lpParameter] = TRUE;
+ dwThreadId1_CreateThread_test2[(DWORD)(SIZE_T)lpParameter] = GetCurrentThreadId();
+ bResult_CreateThread_test2[(DWORD)(SIZE_T) lpParameter] = TRUE;
return (DWORD)(SIZE_T) lpParameter;
}
LPDWORD lpThreadId;
};
-struct testCase testCases[]=
-{
- {NULL, 0, &Thread, 0, NULL},
- {NULL, 0, &Thread, CREATE_SUSPENDED, NULL},
- {NULL, 0, &Thread, 0, (LPDWORD) 1}
-};
-
/*
* close handles
*/
-BOOL cleanup(int index)
+BOOL cleanup_CreateThread_test2(int index)
{
int i;
BOOL bRet = TRUE;
for (i = 0; i < index; i++)
{
- if (!CloseHandle(hThread[i]))
+ if (!CloseHandle(hThread_CreateThread_test2[i]))
{
bRet = FALSE;
Trace("PALSUITE ERROR: CloseHandle(%p) call failed for index %d\n",
- hThread[i], i);
+ hThread_CreateThread_test2[i], i);
}
}
return(bRet);
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CreateThread_test2_paltest_createthread_test2, "threading/CreateThread/test2/paltest_createthread_test2")
{
+ struct testCase testCases[]=
+ {
+ {NULL, 0, &Thread_CreateThread_test2, 0, NULL},
+ {NULL, 0, &Thread_CreateThread_test2, CREATE_SUSPENDED, NULL},
+ {NULL, 0, &Thread_CreateThread_test2, 0, (LPDWORD) 1}
+ };
+
SIZE_T i;
DWORD dwRetWFSO;
DWORD dwRetRT;
/* set results array to FALSE */
for (i = 0; i < NUM_TESTS; i++)
{
- bResult[i]=FALSE;
- dwThreadId[i]=0;
+ bResult_CreateThread_test2[i]=FALSE;
+ dwThreadId_CreateThread_test2[i]=0;
}
for (i = 0; i < NUM_TESTS; i++)
{
if (NULL != testCases[i].lpThreadId)
{
- testCases[i].lpThreadId = &dwThreadId[i];
+ testCases[i].lpThreadId = &dwThreadId_CreateThread_test2[i];
}
/* pass the index as the thread argument */
- hThread[i] = CreateThread( testCases[i].lpThreadAttributes,
+ hThread_CreateThread_test2[i] = CreateThread( testCases[i].lpThreadAttributes,
testCases[i].dwStackSize,
testCases[i].lpStartAddress,
(LPVOID)i,
testCases[i].dwCreationFlags,
testCases[i].lpThreadId);
- if (hThread[i] == NULL)
+ if (hThread_CreateThread_test2[i] == NULL)
{
Trace("PALSUITE ERROR: CreateThread('%p' '%d' '%p' '%p' '%d' "
"'%p') call failed.\nGetLastError returned '%u'.\n",
testCases[i].lpStartAddress, (LPVOID)i,
testCases[i].dwCreationFlags,
testCases[i].lpThreadId, GetLastError());
- cleanup(i - 1);
+ cleanup_CreateThread_test2(i - 1);
Fail("");
}
/* Resume suspended threads */
if (testCases[i].dwCreationFlags == CREATE_SUSPENDED)
{
- dwRetRT = ResumeThread (hThread[i]);
+ dwRetRT = ResumeThread (hThread_CreateThread_test2[i]);
if (dwRetRT != 1)
{
Trace ("PALSUITE ERROR: ResumeThread(%p) "
"call returned %d it should have returned %d.\n"
- "GetLastError returned %u.\n", hThread[i], dwRetRT,
+ "GetLastError returned %u.\n", hThread_CreateThread_test2[i], dwRetRT,
1, GetLastError());
- cleanup(i);
+ cleanup_CreateThread_test2(i);
Fail("");
}
}
/* cleanup */
for (i = 0; i < NUM_TESTS; i++)
{
- dwRetWFSO = WaitForSingleObject(hThread[i], 10000);
+ dwRetWFSO = WaitForSingleObject(hThread_CreateThread_test2[i], 10000);
if (dwRetWFSO != WAIT_OBJECT_0)
{
Trace ("PALSUITE ERROR: WaitForSingleObject('%p' '%d') "
"call returned %d instead of WAIT_OBJECT_0 ('%d').\n"
- "GetLastError returned %u.\n", hThread[i], 10000,
+ "GetLastError returned %u.\n", hThread_CreateThread_test2[i], 10000,
dwRetWFSO, WAIT_OBJECT_0, GetLastError());
- cleanup(i);
+ cleanup_CreateThread_test2(i);
Fail("");
}
}
- if(!cleanup(NUM_TESTS))
+ if(!cleanup_CreateThread_test2(NUM_TESTS))
{
Fail("");
}
* check to see that all threads were created and were passed
* the array index as an argument.
*/
- if (FALSE == bResult[i])
+ if (FALSE == bResult_CreateThread_test2[i])
{
bRet = FALSE;
Trace("PALSUITE ERROR: result[%d]=%d. It should be %d\n", i,
/*
* check to see that lpThreadId received the correct value.
*/
- if (0 != dwThreadId[i])
+ if (0 != dwThreadId_CreateThread_test2[i])
{
- if (dwThreadId[i] != dwThreadId1[i])
+ if (dwThreadId_CreateThread_test2[i] != dwThreadId1_CreateThread_test2[i])
{
bRet = FALSE;
- Trace("PALSUITE ERROR: dwThreadId[%d]=%p and dwThreadId1[%d]"
+ Trace("PALSUITE ERROR: dwThreadId_CreateThread_test2[%d]=%p and dwThreadId1_CreateThread_test2[%d]"
"=%p\nThese values should be identical.\n", i,
- dwThreadId[i], i, dwThreadId1[i]);
+ dwThreadId_CreateThread_test2[i], i, dwThreadId1_CreateThread_test2[i]);
}
}
}
if (!bRet)
{
- cleanup(NUM_TESTS);
+ cleanup_CreateThread_test2(NUM_TESTS);
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateThread
-Name = Positive Test for CreateThread
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test that lpThreadId is assigned the correct threadId value and
-= that lpThreadId can be NULL.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_createthread_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_createthread_test3 coreclrpal)
-
-target_link_libraries(paltest_createthread_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-HANDLE hThread;
-HANDLE hEvent;
+HANDLE hThread_CreateThread_test3;
+HANDLE hEvent_CreateThread_test3;
-DWORD PALAPI Thread( LPVOID lpParameter)
+DWORD PALAPI Thread_CreateThread_test3( LPVOID lpParameter)
{
DWORD dwRet;
- dwRet = WaitForSingleObject(hEvent, INFINITE);
+ dwRet = WaitForSingleObject(hEvent_CreateThread_test3, INFINITE);
/* if this thread continues beyond here, fail */
Fail("");
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CreateThread_test3_paltest_createthread_test3, "threading/CreateThread/test3/paltest_createthread_test3")
{
DWORD dwThreadId;
DWORD dwRet;
return (FAIL);
}
- hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ hEvent_CreateThread_test3 = CreateEvent(NULL, TRUE, FALSE, NULL);
- if (hEvent == NULL)
+ if (hEvent_CreateThread_test3 == NULL)
{
Fail("PALSUITE ERROR: CreateEvent call #0 failed. GetLastError "
"returned %u.\n", GetLastError());
}
/* pass the index as the thread argument */
- hThread = CreateThread( NULL,
+ hThread_CreateThread_test3 = CreateThread( NULL,
0,
- &Thread,
+ &Thread_CreateThread_test3,
(LPVOID) 0,
0,
&dwThreadId);
- if (hThread == NULL)
+ if (hThread_CreateThread_test3 == NULL)
{
Trace("PALSUITE ERROR: CreateThread('%p' '%d' '%p' '%p' '%d' '%p') "
"call failed.\nGetLastError returned '%u'.\n", NULL,
- 0, &Thread, (LPVOID) 0, 0, &dwThreadId, GetLastError());
- if (0 == CloseHandle(hEvent))
+ 0, &Thread_CreateThread_test3, (LPVOID) 0, 0, &dwThreadId, GetLastError());
+ if (0 == CloseHandle(hEvent_CreateThread_test3))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%u'.\n", hEvent);
+ "clean up.\nGetLastError returned '%u'.\n", hEvent_CreateThread_test3);
}
Fail("");
}
- dwRet = WaitForSingleObject(hThread, 10000);
+ dwRet = WaitForSingleObject(hThread_CreateThread_test3, 10000);
if (dwRet != WAIT_TIMEOUT)
{
Trace ("PALSUITE ERROR: WaitForSingleObject('%p' '%d') "
"call returned %d instead of WAIT_TIMEOUT ('%d').\n"
- "GetLastError returned '%u'.\n", hThread, 10000,
+ "GetLastError returned '%u'.\n", hThread_CreateThread_test3, 10000,
dwRet, WAIT_TIMEOUT, GetLastError());
Fail("");
}
- if (0 == CloseHandle(hThread))
+ if (0 == CloseHandle(hThread_CreateThread_test3))
{
Trace("PALSUITE ERROR: Unable to CloseHandle(%p) on a running thread."
- "\nGetLastError returned '%u'.\n", hThread, GetLastError());
- if (0 == CloseHandle(hEvent))
+ "\nGetLastError returned '%u'.\n", hThread_CreateThread_test3, GetLastError());
+ if (0 == CloseHandle(hEvent_CreateThread_test3))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "cleanup.\nGetLastError returned '%u'.\n", hEvent,
+ "cleanup.\nGetLastError returned '%u'.\n", hEvent_CreateThread_test3,
GetLastError());
}
Fail("");
}
- if (0 == CloseHandle(hEvent))
+ if (0 == CloseHandle(hEvent_CreateThread_test3))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "cleanup.\nGetLastError returned '%u'.\n", hEvent,
+ "cleanup.\nGetLastError returned '%u'.\n", hEvent_CreateThread_test3,
GetLastError());
Fail("");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CreateThread
-Name = Positive Test for CreateThread
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Check to see that the handle CreateThread returns can be closed while
-= the thread is still running.
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-
+++ /dev/null
-set(SOURCES
- InitializeCriticalSection.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test1 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define _BUF_SIZE 10
-DWORD dwThreadId; /* consumer thread identifier */
+DWORD dwThreadId_CriticalSectionFunctions_test1; /* consumer thread identifier */
-HANDLE hThread; /* handle to consumer thread */
+HANDLE hThread_CriticalSectionFunctions_test1; /* handle to consumer thread */
-CRITICAL_SECTION CriticalSectionM; /* Critical Section Object (used as mutex) */
+CRITICAL_SECTION CriticalSectionM_CriticalSectionFunctions_test1; /* Critical Section Object (used as mutex) */
typedef struct Buffer
{
} BufferStructure;
-CHAR producerItems[PRODUCTION_TOTAL + 1];
+CHAR producerItems_CriticalSectionFunctions_test1[PRODUCTION_TOTAL + 1];
-CHAR consumerItems[PRODUCTION_TOTAL + 1];
+CHAR consumerItems_CriticalSectionFunctions_test1[PRODUCTION_TOTAL + 1];
/*
* Read next message from the Buffer into provided pointer.
* Returns: 0 on failure, 1 on success.
*/
int
-readBuf(BufferStructure *Buffer, char *c)
+readBuf_CriticalSectionFunctions_test1(BufferStructure *Buffer, char *c)
{
if( Buffer -> writeIndex == Buffer -> readIndex )
{
* Returns: 0 on failure, 1 on success.
*/
int
-writeBuf(BufferStructure *Buffer, CHAR c)
+writeBuf_CriticalSectionFunctions_test1(BufferStructure *Buffer, CHAR c)
{
if( ( ((Buffer -> writeIndex) + 1) % _BUF_SIZE) ==
(Buffer -> readIndex) )
* Sleep 500 milleseconds.
*/
VOID
-consumerSleep(VOID)
+consumerSleep_CriticalSectionFunctions_test1(VOID)
{
Sleep(500);
}
* Sleep between 10 milleseconds.
*/
VOID
-producerSleep(VOID)
+producerSleep_CriticalSectionFunctions_test1(VOID)
{
Sleep(10);
}
* Produce a message and write the message to Buffer.
*/
VOID
-producer(BufferStructure *Buffer)
+producer_CriticalSectionFunctions_test1(BufferStructure *Buffer)
{
int n = 0;
{
c = 'A' + n ; /* Produce Item */
- EnterCriticalSection(&CriticalSectionM);
+ EnterCriticalSection(&CriticalSectionM_CriticalSectionFunctions_test1);
- if (writeBuf(Buffer, c))
+ if (writeBuf_CriticalSectionFunctions_test1(Buffer, c))
{
printf("Producer produces %c.\n", c);
- producerItems[n++] = c;
+ producerItems_CriticalSectionFunctions_test1[n++] = c;
}
- LeaveCriticalSection(&CriticalSectionM);
+ LeaveCriticalSection(&CriticalSectionM_CriticalSectionFunctions_test1);
- producerSleep();
+ producerSleep_CriticalSectionFunctions_test1();
}
return;
*/
DWORD
PALAPI
-consumer( LPVOID lpParam )
+consumer_CriticalSectionFunctions_test1( LPVOID lpParam )
{
int n = 0;
char c;
- consumerSleep();
+ consumerSleep_CriticalSectionFunctions_test1();
while (n < PRODUCTION_TOTAL)
{
- EnterCriticalSection(&CriticalSectionM);
+ EnterCriticalSection(&CriticalSectionM_CriticalSectionFunctions_test1);
- if (readBuf((BufferStructure*)lpParam, &c))
+ if (readBuf_CriticalSectionFunctions_test1((BufferStructure*)lpParam, &c))
{
printf("\tConsumer consumes %c.\n", c);
- consumerItems[n++] = c;
+ consumerItems_CriticalSectionFunctions_test1[n++] = c;
}
- LeaveCriticalSection(&CriticalSectionM);
+ LeaveCriticalSection(&CriticalSectionM_CriticalSectionFunctions_test1);
- consumerSleep();
+ consumerSleep_CriticalSectionFunctions_test1();
}
return 0;
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test1_paltest_criticalsectionfunctions_test1, "threading/CriticalSectionFunctions/test1/paltest_criticalsectionfunctions_test1")
{
BufferStructure Buffer, *pBuffer;
* Create mutual exclusion mechanisms
*/
- InitializeCriticalSection ( &CriticalSectionM );
+ InitializeCriticalSection ( &CriticalSectionM_CriticalSectionFunctions_test1 );
/*
* Initialize Buffer
/*
* Create Consumer
*/
- hThread = CreateThread(
+ hThread_CriticalSectionFunctions_test1 = CreateThread(
NULL,
0,
- consumer,
+ consumer_CriticalSectionFunctions_test1,
&Buffer,
0,
- &dwThreadId);
+ &dwThreadId_CriticalSectionFunctions_test1);
- if ( NULL == hThread )
+ if ( NULL == hThread_CriticalSectionFunctions_test1 )
{
Fail ( "CreateThread() returned NULL. Failing test.\n"
"GetLastError returned %d\n", GetLastError());
/*
* Start producing
*/
- producer(pBuffer);
+ producer_CriticalSectionFunctions_test1(pBuffer);
/*
* Wait for consumer to complete
*/
- WaitForSingleObject (hThread, INFINITE);
+ WaitForSingleObject (hThread_CriticalSectionFunctions_test1, INFINITE);
/*
* Compare items produced vs. items consumed
*/
- if ( 0 != strncmp (producerItems, consumerItems, PRODUCTION_TOTAL) )
+ if ( 0 != strncmp (producerItems_CriticalSectionFunctions_test1, consumerItems_CriticalSectionFunctions_test1, PRODUCTION_TOTAL) )
{
- Fail("The producerItems string %s\n and the consumerItems string "
+ Fail("The producerItems_CriticalSectionFunctions_test1 string %s\n and the consumerItems_CriticalSectionFunctions_test1 string "
"%s\ndo not match. This could be a problem with the strncmp()"
" function\n FailingTest\nGetLastError() returned %d\n",
- producerItems, consumerItems, GetLastError());
+ producerItems_CriticalSectionFunctions_test1, consumerItems_CriticalSectionFunctions_test1, GetLastError());
}
/*
* Clean up Critical Section object
*/
- DeleteCriticalSection(&CriticalSectionM);
+ DeleteCriticalSection(&CriticalSectionM_CriticalSectionFunctions_test1);
- Trace("producerItems and consumerItems arrays match. All %d\nitems "
+ Trace("producerItems_CriticalSectionFunctions_test1 and consumerItems_CriticalSectionFunctions_test1 arrays match. All %d\nitems "
"were produced and consumed in order.\nTest passed.\n",
PRODUCTION_TOTAL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = InitializeCriticalSection / EnterCriticalSection / LeaveCriticalSection / DeleteCriticalSection
-Name = Positive Test for InitializeCriticalSection, EnterCriticalSection, LeaveCriticalSection and DeleteCriticalSection
-TYPE = DEFAULT
-EXE1 = initializecriticalsection
-Description
-= Implementation of Producer / Consumer IPC problem using the
-= "CriticalSection" functions to provide a mutual exclusion mechanism.
-= This test case exercises InitializeCriticalSection, EnterCriticalSection,
-= LeaveCriticalSection, DeleteCriticalSection, and WaitForSingleObject
-= functions.
-= This case doesn't work with more than one producer and one consumer.
-= The producer thread and consumer thread each take turns blocking on
-= the CriticalSection object and do not have any other synchronization
-= mechanisms. This prevents adding producers or consumers as there are
-= no mechanisms to block them once the buffer is full.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test2 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-CRITICAL_SECTION CriticalSection;
-
volatile BOOL t0_tflag = FAIL; /* thread 0 timeout flag */
volatile BOOL t1_aflag = FAIL; /* thread 1 access flag */
volatile BOOL t1_cflag = FAIL; /* thread 1 critical section flag */
volatile BOOL bTestResult = FAIL;
-DWORD PALAPI Thread(LPVOID lpParam)
+DWORD PALAPI Thread_CriticalSectionFunctions_test2(LPVOID lpParam)
{
t1_aflag = PASS;
EnterCriticalSection(&CriticalSection);
return 0;
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test2_paltest_criticalsectionfunctions_test2, "threading/CriticalSectionFunctions/test2/paltest_criticalsectionfunctions_test2")
{
HANDLE hThread;
DWORD dwThreadId;
*/
hThread = CreateThread(NULL,
0,
- &Thread,
+ &Thread_CriticalSectionFunctions_test2,
(LPVOID) NULL,
CREATE_SUSPENDED,
&dwThreadId);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CriticalSectionFunctions
-Name = Positive test to ensure CRITICAL_SECTION objects can be nested
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test that we are able to nest critical section calls.
-= The initial thread makes a call to EnterCriticalSection once,
-= blocking on a CRITICAL_SECTION object and creates a new thread.
-= The newly created thread blocks on the same CRITICAL_SECTION object.
-= The first thread now makes a call to LeaveCriticalSection.
-= Test to see that the new thread doesn't get unblocked.
-
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test3 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test3
- ${COMMON_TEST_LIBRARIES}
-)
#define NUM_THREADS 2
-HANDLE hThread[NUM_THREADS];
-HANDLE hEvent[NUM_THREADS];
-CRITICAL_SECTION CriticalSection;
-BOOL bRet = FAIL;
+HANDLE hThread_CriticalSectionFunctions_test3[NUM_THREADS];
+HANDLE hEvent_CriticalSectionFunctions_test3[NUM_THREADS];
+BOOL bRet_CriticalSectionFunctions_test3 = FAIL;
-DWORD PALAPI Thread(LPVOID lpParam)
+DWORD PALAPI Thread_CriticalSectionFunctions_test3(LPVOID lpParam)
{
DWORD dwRet;
if (0 == TryEnterCriticalSection(&CriticalSection))
{
- dwRet = WaitForMultipleObjects(NUM_THREADS, hEvent, TRUE, 10000);
+ dwRet = WaitForMultipleObjects(NUM_THREADS, hEvent_CriticalSectionFunctions_test3, TRUE, 10000);
if ((WAIT_OBJECT_0 > dwRet) ||
((WAIT_OBJECT_0 + NUM_THREADS - 1) < dwRet))
{
#if 0
- if (0 == CloseHandle(hThread[1]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) "
"during clean up.\nGetLastError returned '%d'.\n",
- hThread[1], GetLastError());
+ hThread_CriticalSectionFunctions_test3[1], GetLastError());
}
#endif
Trace("PALSUITE ERROR: WaitForMultipleObjects(%d, %p, %d, %d) call"
"returned an unexpected value, '%d'.\nGetLastError returned "
- "%d.\n", NUM_THREADS, hEvent, TRUE, 10000, dwRet,
+ "%d.\n", NUM_THREADS, hEvent_CriticalSectionFunctions_test3, TRUE, 10000, dwRet,
GetLastError());
}
else
{
- bRet = PASS;
+ bRet_CriticalSectionFunctions_test3 = PASS;
}
}
else
{
/* signal thread 0 */
- if (0 == SetEvent(hEvent[0]))
+ if (0 == SetEvent(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute SetEvent(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0],
GetLastError());
LeaveCriticalSection(&CriticalSection);
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) "
"during clean up\nGetLastError returned '%d'.\n",
- hThread[0], GetLastError());
+ hThread_CriticalSectionFunctions_test3[0], GetLastError());
}
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) "
"during clean up\nGetLastError returned '%d'.\n",
- hEvent[0], GetLastError());
+ hEvent_CriticalSectionFunctions_test3[0], GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) "
"during clean up\nGetLastError returned '%d'.\n",
- hEvent[1], GetLastError());
+ hEvent_CriticalSectionFunctions_test3[1], GetLastError());
}
DeleteCriticalSection(&CriticalSection);
Fail("");
}
/* wait to be signaled */
- dwRet = WaitForSingleObject(hEvent[1], 10000);
+ dwRet = WaitForSingleObject(hEvent_CriticalSectionFunctions_test3[1], 10000);
if (WAIT_OBJECT_0 != dwRet)
{
Trace("PALSUITE ERROR: WaitForSingleObject(%p,%d) should have "
"returned\nWAIT_OBJECT_0 ('%d'), instead it returned "
"('%d').\nGetLastError returned '%d'.\n",
- hEvent[0], 10000, WAIT_OBJECT_0, dwRet, GetLastError());
- if (0 == CloseHandle(hThread[0]))
+ hEvent_CriticalSectionFunctions_test3[0], 10000, WAIT_OBJECT_0, dwRet, GetLastError());
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) "
"during clean up.\nGetLastError returned '%d'.\n",
- hThread[0], GetLastError());
+ hThread_CriticalSectionFunctions_test3[0], GetLastError());
}
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) "
"during clean up.\nGetLastError returned '%d'.\n",
- hEvent[0], GetLastError());
+ hEvent_CriticalSectionFunctions_test3[0], GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) "
"during clean up.\nGetLastError returned '%d.'\n",
- hEvent[1], GetLastError());
+ hEvent_CriticalSectionFunctions_test3[1], GetLastError());
}
DeleteCriticalSection(&CriticalSection);
Fail("");
return FAIL;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test3_paltest_criticalsectionfunctions_test3, "threading/CriticalSectionFunctions/test3/paltest_criticalsectionfunctions_test3")
{
- HANDLE hThread[NUM_THREADS];
+ HANDLE hThread_CriticalSectionFunctions_test3[NUM_THREADS];
DWORD dwThreadId[NUM_THREADS];
DWORD dwRet;
if ((PAL_Initialize(argc,argv)) != 0)
{
- return(bRet);
+ return(bRet_CriticalSectionFunctions_test3);
}
/* thread 0 event */
- hEvent[0] = CreateEvent(NULL, TRUE, FALSE, NULL);
+ hEvent_CriticalSectionFunctions_test3[0] = CreateEvent(NULL, TRUE, FALSE, NULL);
- if (hEvent[0] == NULL)
+ if (hEvent_CriticalSectionFunctions_test3[0] == NULL)
{
Fail("PALSUITE ERROR: CreateEvent call #0 failed. GetLastError "
"returned %d.\n", GetLastError());
}
/* thread 1 event */
- hEvent[1] = CreateEvent(NULL, TRUE, FALSE, NULL);
+ hEvent_CriticalSectionFunctions_test3[1] = CreateEvent(NULL, TRUE, FALSE, NULL);
- if (hEvent[1] == NULL)
+ if (hEvent_CriticalSectionFunctions_test3[1] == NULL)
{
Trace("PALSUITE ERROR: CreateEvent call #1 failed. GetLastError "
"returned %d.\n", GetLastError());
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0]);
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0]);
}
Fail("");
}
InitializeCriticalSection ( &CriticalSection );
- hThread[0] = CreateThread(NULL,
+ hThread_CriticalSectionFunctions_test3[0] = CreateThread(NULL,
0,
- &Thread,
+ &Thread_CriticalSectionFunctions_test3,
(LPVOID) NULL,
0,
&dwThreadId[0]);
- if (hThread[0] == NULL)
+ if (hThread_CriticalSectionFunctions_test3[0] == NULL)
{
Trace("PALSUITE ERROR: CreateThread call #0 failed. GetLastError "
"returned %d.\n", GetLastError());
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[1],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[1],
GetLastError());
}
DeleteCriticalSection(&CriticalSection);
/* wait for thread 0 to be signaled */
- dwRet = WaitForSingleObject(hEvent[0], 10000);
+ dwRet = WaitForSingleObject(hEvent_CriticalSectionFunctions_test3[0], 10000);
if (WAIT_OBJECT_0 != dwRet)
{
Trace("PALSUITE ERROR: WaitForSingleObject(%p,%d) should have "
"returned\nWAIT_OBJECT_0 ('%d'), instead it returned "
- "('%d').\nGetLastError returned '%d'.\n", hEvent[0], 10000,
+ "('%d').\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0], 10000,
WAIT_OBJECT_0, dwRet, GetLastError());
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hThread[0],
+ "clean up.\nGetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[1],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[1],
GetLastError());
}
Fail("");
if (0 == TryEnterCriticalSection(&CriticalSection))
{
/* signal thread 1 */
- if (0 == SetEvent(hEvent[1]))
+ if (0 == SetEvent(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute SetEvent(%p) call.\n"
- "GetLastError returned '%d'.\n", hEvent[1],
+ "GetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[1],
GetLastError());
goto done;
}
Trace("PALSUITE_ERROR: TryEnterCriticalSection was able to grab a"
" CRITICAL_SECTION object\nwhich was already owned.\n");
LeaveCriticalSection(&CriticalSection);
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hThread[0],
+ "clean up.\nGetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[1],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[1],
GetLastError());
}
DeleteCriticalSection(&CriticalSection);
*/
EnterCriticalSection(&CriticalSection);
- hThread[1] = CreateThread(NULL,
+ hThread_CriticalSectionFunctions_test3[1] = CreateThread(NULL,
0,
- &Thread,
+ &Thread_CriticalSectionFunctions_test3,
(LPVOID) NULL,
0,
&dwThreadId[1]);
- if (hThread[1] == NULL)
+ if (hThread_CriticalSectionFunctions_test3[1] == NULL)
{
Trace("PALSUITE ERROR: CreateThread call #1 failed. GetLastError "
"returned %d.\n", GetLastError());
LeaveCriticalSection(&CriticalSection);
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hThread[0],
+ "clean up.\nGetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[1],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[1],
GetLastError());
}
DeleteCriticalSection(&CriticalSection);
Fail("");
}
- dwRet = WaitForMultipleObjects(NUM_THREADS, hThread, TRUE, 10000);
+ dwRet = WaitForMultipleObjects(NUM_THREADS, hThread_CriticalSectionFunctions_test3, TRUE, 10000);
if ((WAIT_OBJECT_0 > dwRet) ||
((WAIT_OBJECT_0 + NUM_THREADS - 1) < dwRet))
{
Trace("PALSUITE ERROR: WaitForMultipleObjects(%d, %p, %d, %d) call "
"returned an unexpected value, '%d'.\nGetLastError returned "
- "%d.\n", NUM_THREADS, hThread, TRUE, 10000, dwRet,
+ "%d.\n", NUM_THREADS, hThread_CriticalSectionFunctions_test3, TRUE, 10000, dwRet,
GetLastError());
LeaveCriticalSection(&CriticalSection);
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hThread[0],
+ "clean up.\nGetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hThread[1]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hThread[1],
+ "clean up.\nGetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test3[1],
GetLastError());
}
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[1],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[1],
GetLastError());
}
DeleteCriticalSection(&CriticalSection);
}
LeaveCriticalSection(&CriticalSection);
- if (0 == CloseHandle(hThread[1]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hThread[1],
+ "clean up.\nGetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test3[1],
GetLastError());
}
done:
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hThread[0],
+ "clean up.\nGetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[0]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[0]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[0],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[0],
GetLastError());
}
- if (0 == CloseHandle(hEvent[1]))
+ if (0 == CloseHandle(hEvent_CriticalSectionFunctions_test3[1]))
{
Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%d'.\n", hEvent[1],
+ "clean up.\nGetLastError returned '%d'.\n", hEvent_CriticalSectionFunctions_test3[1],
GetLastError());
}
DeleteCriticalSection(&CriticalSection);
- PAL_TerminateEx(bRet);
+ PAL_TerminateEx(bRet_CriticalSectionFunctions_test3);
- return (bRet);
+ return (bRet_CriticalSectionFunctions_test3);
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CriticalSectionFunctions
-Name = Positive Test for TryEnterCriticalSection
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Create two threads to exercise TryEnterCriticalSection
-= and EnterCriticalSection. TryEnterCriticalSection acquires
-= and holds a CRITICAL_SECTION object. Another call to
-= TryEnterCriticalSection is made from a different thread, at
-= this time, to establish a call to TryEnterCriticalSection
-= will return immediatly and to establish
-= TryEnterCriticalSection returns the proper value when it
-= attempts to lock a CRITICAL_SECTION that is already owned
-= by another thread. The CRITICAL_SECTION object is then
-= released and held by a call to EnterCriticalSection. A new
-= thread is invoked and attempts to acquire the held
-= CRITICAL_SECTION with a call to TryEnterCriticalSection.
-= TryEnterCriticalSection returns immediatly and returns
-= with the value that states the CRITICAL_SECTION object is
-= held by another thread. This establishes
-= TryEnterCriticalSection behaves the same way with
-= CriticalSections locked by TryEnterCriticalSection and
-= EnterCriticalSection.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test4 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test4
- ${COMMON_TEST_LIBRARIES}
-)
#define NUM_BLOCKING_THREADS 2
-BOOL bTestResult;
-CRITICAL_SECTION CriticalSection;
-HANDLE hThread[NUM_BLOCKING_THREADS];
-HANDLE hEvent;
-DWORD dwThreadId[NUM_BLOCKING_THREADS];
-volatile int flags[NUM_BLOCKING_THREADS] = {0,0};
-
-DWORD PALAPI ThreadTest1(LPVOID lpParam)
+BOOL bTestResult_CriticalSectionFunctions_test4;
+CRITICAL_SECTION CriticalSection_CriticalSectionFunctions_test4;
+HANDLE hThread_CriticalSectionFunctions_test4[NUM_BLOCKING_THREADS];
+HANDLE hEvent_CriticalSectionFunctions_test4;
+DWORD dwThreadId_CriticalSectionFunctions_test4[NUM_BLOCKING_THREADS];
+volatile int flags_CriticalSectionFunctions_test4[NUM_BLOCKING_THREADS] = {0,0};
+
+DWORD PALAPI ThreadTest1_CriticalSectionFunctions_test4(LPVOID lpParam)
{
- EnterCriticalSection ( &CriticalSection );
+ EnterCriticalSection ( &CriticalSection_CriticalSectionFunctions_test4 );
- flags[0] = 1;
+ flags_CriticalSectionFunctions_test4[0] = 1;
return 0;
}
-DWORD PALAPI ThreadTest2(LPVOID lpParam)
+DWORD PALAPI ThreadTest2_CriticalSectionFunctions_test4(LPVOID lpParam)
{
- EnterCriticalSection ( &CriticalSection );
+ EnterCriticalSection ( &CriticalSection_CriticalSectionFunctions_test4 );
- flags[1] = 1;
+ flags_CriticalSectionFunctions_test4[1] = 1;
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test4_paltest_criticalsectionfunctions_test4, "threading/CriticalSectionFunctions/test4/paltest_criticalsectionfunctions_test4")
{
DWORD dwRet;
DWORD dwRet1;
- bTestResult = FAIL;
+ bTestResult_CriticalSectionFunctions_test4 = FAIL;
if ((PAL_Initialize(argc,argv)) != 0)
{
- return(bTestResult);
+ return(bTestResult_CriticalSectionFunctions_test4);
}
/*
* Create Critical Section Object
*/
- InitializeCriticalSection ( &CriticalSection );
+ InitializeCriticalSection ( &CriticalSection_CriticalSectionFunctions_test4 );
- EnterCriticalSection ( &CriticalSection );
+ EnterCriticalSection ( &CriticalSection_CriticalSectionFunctions_test4 );
- hThread[0] = CreateThread(NULL,
+ hThread_CriticalSectionFunctions_test4[0] = CreateThread(NULL,
0,
- &ThreadTest1,
+ &ThreadTest1_CriticalSectionFunctions_test4,
(LPVOID) 0,
CREATE_SUSPENDED,
- &dwThreadId[0]);
- if (hThread[0] == NULL)
+ &dwThreadId_CriticalSectionFunctions_test4[0]);
+ if (hThread_CriticalSectionFunctions_test4[0] == NULL)
{
Trace("PALSUITE ERROR: CreateThread(%p, %d, %p, %p, %d, %p) call "
- "failed.\nGetLastError returned %d.\n", NULL, 0, &ThreadTest1,
- (LPVOID) 0, CREATE_SUSPENDED, &dwThreadId[0], GetLastError());
- LeaveCriticalSection(&CriticalSection);
- DeleteCriticalSection ( &CriticalSection );
+ "failed.\nGetLastError returned %d.\n", NULL, 0, &ThreadTest1_CriticalSectionFunctions_test4,
+ (LPVOID) 0, CREATE_SUSPENDED, &dwThreadId_CriticalSectionFunctions_test4[0], GetLastError());
+ LeaveCriticalSection(&CriticalSection_CriticalSectionFunctions_test4);
+ DeleteCriticalSection ( &CriticalSection_CriticalSectionFunctions_test4 );
Fail("");
}
- hThread[1] = CreateThread(NULL,
+ hThread_CriticalSectionFunctions_test4[1] = CreateThread(NULL,
0,
- &ThreadTest2,
+ &ThreadTest2_CriticalSectionFunctions_test4,
(LPVOID) 0,
CREATE_SUSPENDED,
- &dwThreadId[1]);
- if (hThread[1] == NULL)
+ &dwThreadId_CriticalSectionFunctions_test4[1]);
+ if (hThread_CriticalSectionFunctions_test4[1] == NULL)
{
Trace("PALSUITE ERROR: CreateThread(%p, %d, %p, %p, %d, %p) call "
- "failed.\nGetLastError returned %d.\n", NULL, 0, &ThreadTest2,
- (LPVOID) 0, CREATE_SUSPENDED, &dwThreadId[1], GetLastError());
- LeaveCriticalSection(&CriticalSection);
+ "failed.\nGetLastError returned %d.\n", NULL, 0, &ThreadTest2_CriticalSectionFunctions_test4,
+ (LPVOID) 0, CREATE_SUSPENDED, &dwThreadId_CriticalSectionFunctions_test4[1], GetLastError());
+ LeaveCriticalSection(&CriticalSection_CriticalSectionFunctions_test4);
- dwRet = ResumeThread(hThread[0]);
+ dwRet = ResumeThread(hThread_CriticalSectionFunctions_test4[0]);
if (-1 == dwRet)
{
Trace("PALSUITE ERROR: ResumeThread(%p) call failed.\n"
- "GetLastError returned '%d'.\n", hThread[0],
+ "GetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test4[0],
GetLastError());
}
- dwRet = WaitForSingleObject(hThread[0], 10000);
+ dwRet = WaitForSingleObject(hThread_CriticalSectionFunctions_test4[0], 10000);
if (WAIT_OBJECT_0 == dwRet)
{
Trace("PALSUITE ERROR: WaitForSingleObject(%p, %d) call "
"failed. '%d' was returned instead of the expected '%d'.\n"
- "GetLastError returned '%d'.\n", hThread[0], 10000, dwRet,
+ "GetLastError returned '%d'.\n", hThread_CriticalSectionFunctions_test4[0], 10000, dwRet,
WAIT_OBJECT_0, GetLastError());
}
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test4[0]))
{
Trace("PALSUITE NOTIFICATION: CloseHandle(%p) call failed.\n"
"GetLastError returned %d. Not failing tests.\n",
- hThread[0], GetLastError());
+ hThread_CriticalSectionFunctions_test4[0], GetLastError());
}
- DeleteCriticalSection(&CriticalSection);
+ DeleteCriticalSection(&CriticalSection_CriticalSectionFunctions_test4);
Fail("");
}
* Set other thread priorities to be higher than ours & Sleep to ensure
* we give up the processor.
*/
- dwRet = (DWORD) SetThreadPriority(hThread[0],
+ dwRet = (DWORD) SetThreadPriority(hThread_CriticalSectionFunctions_test4[0],
THREAD_PRIORITY_ABOVE_NORMAL);
if (0 == dwRet)
{
Trace("PALSUITE ERROR: SetThreadPriority(%p, %d) call failed.\n"
- "GetLastError returned %d", hThread[0],
+ "GetLastError returned %d", hThread_CriticalSectionFunctions_test4[0],
THREAD_PRIORITY_ABOVE_NORMAL, GetLastError());
}
- dwRet = (DWORD) SetThreadPriority(hThread[1],
+ dwRet = (DWORD) SetThreadPriority(hThread_CriticalSectionFunctions_test4[1],
THREAD_PRIORITY_ABOVE_NORMAL);
if (0 == dwRet)
{
Trace("PALSUITE ERROR: SetThreadPriority(%p, %d) call failed.\n"
- "GetLastError returned %d", hThread[1],
+ "GetLastError returned %d", hThread_CriticalSectionFunctions_test4[1],
THREAD_PRIORITY_ABOVE_NORMAL, GetLastError());
}
- dwRet = ResumeThread(hThread[0]);
+ dwRet = ResumeThread(hThread_CriticalSectionFunctions_test4[0]);
if (-1 == dwRet)
{
Trace("PALSUITE ERROR: ResumeThread(%p, %d) call failed.\n"
- "GetLastError returned %d", hThread[0],
+ "GetLastError returned %d", hThread_CriticalSectionFunctions_test4[0],
GetLastError() );
}
- dwRet = ResumeThread(hThread[1]);
+ dwRet = ResumeThread(hThread_CriticalSectionFunctions_test4[1]);
if (-1 == dwRet)
{
Trace("PALSUITE ERROR: ResumeThread(%p, %d) call failed.\n"
- "GetLastError returned %d", hThread[0],
+ "GetLastError returned %d", hThread_CriticalSectionFunctions_test4[0],
GetLastError());
}
Sleep (0);
- LeaveCriticalSection (&CriticalSection);
+ LeaveCriticalSection (&CriticalSection_CriticalSectionFunctions_test4);
- dwRet = WaitForSingleObject(hThread[0], 10000);
- dwRet1 = WaitForSingleObject(hThread[1], 10000);
+ dwRet = WaitForSingleObject(hThread_CriticalSectionFunctions_test4[0], 10000);
+ dwRet1 = WaitForSingleObject(hThread_CriticalSectionFunctions_test4[1], 10000);
if ((WAIT_OBJECT_0 == dwRet) ||
(WAIT_OBJECT_0 == dwRet1))
{
- if ((1 == flags[0] && 0 == flags[1]) ||
- (0 == flags[0] && 1 == flags[1]))
+ if ((1 == flags_CriticalSectionFunctions_test4[0] && 0 == flags_CriticalSectionFunctions_test4[1]) ||
+ (0 == flags_CriticalSectionFunctions_test4[0] && 1 == flags_CriticalSectionFunctions_test4[1]))
{
- bTestResult = PASS;
+ bTestResult_CriticalSectionFunctions_test4 = PASS;
}
else
{
- bTestResult = FAIL;
+ bTestResult_CriticalSectionFunctions_test4 = FAIL;
Trace ("PALSUITE ERROR: flags[%d] = {%d,%d}. These values are"
"inconsistent.\nCriticalSection test failed.\n",
- NUM_BLOCKING_THREADS, flags[0], flags[1]);
+ NUM_BLOCKING_THREADS, flags_CriticalSectionFunctions_test4[0], flags_CriticalSectionFunctions_test4[1]);
}
/* Fail the test if both threads returned WAIT_OBJECT_0 */
if ((WAIT_OBJECT_0 == dwRet) && (WAIT_OBJECT_0 == dwRet1))
{
- bTestResult = FAIL;
+ bTestResult_CriticalSectionFunctions_test4 = FAIL;
Trace ("PALSUITE ERROR: WaitForSingleObject(%p, %d) and "
"WaitForSingleObject(%p, %d)\nboth returned dwRet = '%d'\n"
"One should have returned WAIT_TIMEOUT ('%d').\n",
- hThread[0], 10000, hThread[1], 10000, dwRet, WAIT_TIMEOUT);
+ hThread_CriticalSectionFunctions_test4[0], 10000, hThread_CriticalSectionFunctions_test4[1], 10000, dwRet, WAIT_TIMEOUT);
}
}
else
{
- bTestResult = FAIL;
+ bTestResult_CriticalSectionFunctions_test4 = FAIL;
Trace ("PALSUITE ERROR: WaitForSingleObject(%p, %d) and "
"WaitForSingleObject(%p, %d)\nReturned dwRet = '%d' and\n"
- "dwRet1 = '%d' respectively.\n", hThread[0], 10000, hThread[1],
+ "dwRet1 = '%d' respectively.\n", hThread_CriticalSectionFunctions_test4[0], 10000, hThread_CriticalSectionFunctions_test4[1],
10000, dwRet, dwRet1);
}
if (WAIT_OBJECT_0 == dwRet)
{
- if (0 == CloseHandle(hThread[0]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test4[0]))
{
Trace("PALSUITE NOTIFICATION: CloseHandle(%p) call failed.\n"
"GetLastError returned %d. Not failing tests.\n",
- hThread[0], GetLastError());
+ hThread_CriticalSectionFunctions_test4[0], GetLastError());
}
}
if (WAIT_OBJECT_0 == dwRet1)
{
- if (0 == CloseHandle(hThread[1]))
+ if (0 == CloseHandle(hThread_CriticalSectionFunctions_test4[1]))
{
Trace("PALSUITE NOTIFICATION: CloseHandle(%p) call failed.\n"
"GetLastError returned %d. Not failing tests.\n",
- hThread[1], GetLastError());
+ hThread_CriticalSectionFunctions_test4[1], GetLastError());
}
}
/* Leaking the CS on purpose, since there is still a thread
waiting on it */
- PAL_TerminateEx(bTestResult);
- return (bTestResult);
+ PAL_TerminateEx(bTestResult_CriticalSectionFunctions_test4);
+ return (bTestResult_CriticalSectionFunctions_test4);
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = LeaveCriticalSection
-Name = Positive test to ensure CRITICAL_SECTION objects are released properly
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test to see if threads blocked on a CRITICAL_SECTION object will
-= be released in an orderly manner. This case looks at the following
-= scenario. If one thread owns a CRITICAL_SECTION object and two threads
-= block in EnterCriticalSection, trying to hold the already owned
-= CRITICAL_SECTION object, when the first thread releases the CRITICAL_SECTION
-= object, will one and only one of the waiters get unblocked?
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test5 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test5
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-/*
- * Tokens 0 and 1 are events. Token 2 is the thread.
- */
-#define NUM_TOKENS 3
-
-HANDLE hToken[NUM_TOKENS];
-CRITICAL_SECTION CriticalSection;
-
-BOOL CleanupHelper (HANDLE *hArray, DWORD dwIndex)
-{
- BOOL bCHRet;
-
- bCHRet = CloseHandle(hArray[dwIndex]);
- if (!bCHRet)
- {
- Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
- GetLastError());
- }
-
- return (bCHRet);
-}
-
-BOOL Cleanup(HANDLE *hArray, DWORD dwIndex)
-{
- BOOL bCRet;
- BOOL bCHRet = FALSE;
-
- while (--dwIndex > 0)
- {
- bCHRet = CleanupHelper(&hArray[0], dwIndex);
- }
-
- bCRet = CloseHandle(hArray[0]);
- if (!bCRet)
- {
- Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
- GetLastError());
- }
-
- return (bCRet&&bCHRet);
-}
-
-DWORD PALAPI Thread(LPVOID lpParam)
+DWORD PALAPI Thread_CriticalSectionFunctions_test5(LPVOID lpParam)
{
DWORD dwTRet;
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test5_paltest_criticalsectionfunctions_test5, "threading/CriticalSectionFunctions/test5/paltest_criticalsectionfunctions_test5")
{
DWORD dwThreadId;
DWORD dwMRet;
hToken[2] = CreateThread(NULL,
0,
- &Thread,
+ &Thread_CriticalSectionFunctions_test5,
(LPVOID) NULL,
0,
&dwThreadId);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CriticalSectionFunctions
-Name = Positive test for DeleteCriticalSection
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Attempt to delete a critical section owned by another thread.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test6 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test6
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-/*
- * Tokens 0 and 1 are events. Token 2 is the thread.
- */
-#define NUM_TOKENS 3
-HANDLE hToken[NUM_TOKENS];
-CRITICAL_SECTION CriticalSection;
-
-BOOL CleanupHelper (HANDLE *hArray, DWORD dwIndex)
-{
- BOOL bCHRet;
-
- bCHRet = CloseHandle(hArray[dwIndex]);
- if (!bCHRet)
- {
- Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
- GetLastError());
- }
-
- return (bCHRet);
-}
-
-BOOL Cleanup(HANDLE *hArray, DWORD dwIndex)
-{
- BOOL bCRet;
- BOOL bCHRet;
-
- while (--dwIndex > 0)
- {
- bCHRet = CleanupHelper(&hArray[0], dwIndex);
- }
-
- bCRet = CloseHandle(hArray[0]);
- if (!bCRet)
- {
- Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
- GetLastError());
- }
-
- return (bCRet&&bCHRet);
-}
-
-DWORD PALAPI Thread(LPVOID lpParam)
+DWORD PALAPI Thread_CriticalSectionFunctions_test6(LPVOID lpParam)
{
DWORD dwTRet;
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test6_paltest_criticalsectionfunctions_test6, "threading/CriticalSectionFunctions/test6/paltest_criticalsectionfunctions_test6")
{
DWORD dwThreadId;
DWORD dwMRet;
hToken[2] = CreateThread(NULL,
0,
- &Thread,
+ &Thread_CriticalSectionFunctions_test6,
(LPVOID) NULL,
0,
&dwThreadId);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CriticalSectionFunctions
-Name = Positive Test for LeaveCriticalSection
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Attempt to leave a critical section which is owned by another thread.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test7 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test7
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-/*
- * Tokens 0 and 1 are events. Token 2 is the thread.
- */
-#define NUM_TOKENS 3
-
-HANDLE hToken[NUM_TOKENS];
-CRITICAL_SECTION CriticalSection;
-
-BOOL CleanupHelper (HANDLE *hArray, DWORD dwIndex)
-{
- BOOL bCHRet;
-
- bCHRet = CloseHandle(hArray[dwIndex]);
- if (!bCHRet)
- {
- Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
- GetLastError());
- }
-
- return (bCHRet);
-}
-
-BOOL Cleanup(HANDLE *hArray, DWORD dwIndex)
-{
- BOOL bCRet;
- BOOL bCHRet = 0;
-
- while (--dwIndex > 0)
- {
- bCHRet = CleanupHelper(&hArray[0], dwIndex);
- }
-
- bCRet = CloseHandle(hArray[0]);
- if (!bCRet)
- {
- Trace("PALSUITE ERROR: Unable to execute CloseHandle(%p) during "
- "clean up.\nGetLastError returned '%u'.\n", hArray[dwIndex],
- GetLastError());
- }
-
- return (bCRet&&bCHRet);
-}
-
-DWORD PALAPI Thread(LPVOID lpParam)
+DWORD PALAPI Thread_CriticalSectionFunctions_test7(LPVOID lpParam)
{
DWORD dwTRet;
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test7_paltest_criticalsectionfunctions_test7, "threading/CriticalSectionFunctions/test7/paltest_criticalsectionfunctions_test7")
{
DWORD dwThreadId;
DWORD dwMRet;
hToken[2] = CreateThread(NULL,
0,
- &Thread,
+ &Thread_CriticalSectionFunctions_test7,
(LPVOID) NULL,
0,
&dwThreadId);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = CriticalSectionFunctions
-Name = Positive test for DeleteCriticalSection
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Attempt to delete a critical section owned by the current thread.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_criticalsectionfunctions_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_criticalsectionfunctions_test8 coreclrpal)
-
-target_link_libraries(paltest_criticalsectionfunctions_test8
- ${COMMON_TEST_LIBRARIES}
-)
HANDLE g_hEvStart = NULL;
CRITICAL_SECTION g_cs;
-DWORD PALAPI Thread(LPVOID lpParam)
+DWORD PALAPI Thread_CriticalSectionFunctions_test8(LPVOID lpParam)
{
int i, j, iLpCnt;
DWORD dwRet = 0;
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_CriticalSectionFunctions_test8_paltest_criticalsectionfunctions_test8, "threading/CriticalSectionFunctions/test8/paltest_criticalsectionfunctions_test8")
{
DWORD dwThreadId;
DWORD dwRet;
{
hThreads[iThreadCount] = CreateThread(NULL,
0,
- &Thread,
+ &Thread_CriticalSectionFunctions_test8,
(LPVOID) NULL,
0,
&dwThreadId);
+++ /dev/null
-
-PAL,threading,palsuite\threading\criticalsectionfunctions\test8,Test8forCriticalSectionFunctionalities=test8.c,
#define GETCALLCOUNT "_GetCallCount@0"
#endif
-DWORD PALAPI ThreadFunc(LPVOID lpParam);
-int RunTest(int DisableThreadCalls);
+DWORD PALAPI ThreadFunc_DisableThreadLibraryCalls_test1(LPVOID lpParam);
+int RunTest_DisableThreadLibraryCalls_test1(int DisableThreadCalls);
-int __cdecl main(int argc, char **argv)
-{
+int __cdecl threading_DisableThreadLibraryCalls_test1(int argc, char* argv[]);
+static PALTest threading_DisableThreadLibraryCalls_test1_lookup(threading_DisableThreadLibraryCalls_test1, "threading/DisableThreadLibraryCalls/test1");
+int __cdecl threading_DisableThreadLibraryCalls_test1(int argc, char* argv[])
+{
int ret;
if ((PAL_Initialize(argc,argv)) != 0)
* Test once without calling DisableThreadLibraryCalls and make sure we
* get expected results.
*/
- ret = RunTest(0);
+ ret = RunTest_DisableThreadLibraryCalls_test1(0);
if (ret != 2)
{
Fail("Expected to get 2 thread library calls, got %d!\n", ret);
/*
* Test again, this time calling DisableThreadLibraryCalls.
*/
- ret = RunTest(1);
+ ret = RunTest_DisableThreadLibraryCalls_test1(1);
if (ret != 0)
{
Fail("Expected to get 0 thread library calls, got %d!\n", ret);
/*
* Thread entry point. Doesn't do anything.
*/
-DWORD PALAPI ThreadFunc(LPVOID lpParam)
+DWORD PALAPI ThreadFunc_DisableThreadLibraryCalls_test1(LPVOID lpParam)
{
return 0;
}
}
}
- hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) ThreadFunc,
+ hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) ThreadFunc_DisableThreadLibraryCalls_test1,
NULL, 0, &threadID);
if (hThread == NULL)
*
* Dummy thread function for causing DLL thread notifications.
*/
-DWORD PALAPI ThreadFunc( LPVOID param )
+DWORD PALAPI ThreadFunc_DisableThreadLibraryCalls_test2( LPVOID param )
{
/* simulate some brief "work" */
int i;
/* run another dummy thread to cause notification of the libraries */
hThread = CreateThread( NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE) ThreadFunc, /* thread function */
+ (LPTHREAD_START_ROUTINE) ThreadFunc_DisableThreadLibraryCalls_test2, /* thread function */
(LPVOID) NULL, /* pass thread index as */
/* function argument */
CREATE_SUSPENDED, /* create suspended */
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test10)
-add_subdirectory(test11)
-add_subdirectory(test12)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-add_subdirectory(test8)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_duplicatehandle_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test1 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test1
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test1_paltest_duplicatehandle_test1, "threading/DuplicateHandle/test1/paltest_duplicatehandle_test1")
{
HANDLE hFile;
HANDLE hDupFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Positive Test for DuplicateHandle
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the DuplicateHandle function.
-= This test will create two handles to file, one to write and
-= one to read what was written. Test on a closed handle and a
-= NULL handle, both should fail.
+++ /dev/null
-set(SOURCES
- test10.cpp
-)
-
-add_executable(paltest_duplicatehandle_test10
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test10 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test10
- ${COMMON_TEST_LIBRARIES}
-)
};
-volatile int t1_result=WR_WAITING;
-volatile int t2_result=WR_WAITING;
+volatile int t1_result_DuplicateHandle_test10=WR_WAITING;
+volatile int t2_result_DuplicateHandle_test10=WR_WAITING;
-DWORD PALAPI ThreadTest1(LPVOID lpParam)
+DWORD PALAPI ThreadTest1_DuplicateHandle_test10(LPVOID lpParam)
{
DWORD dwWait;
if (dwWait == WAIT_OBJECT_0)
{
/* tell the main thread we got the mutex */
- t1_result=WR_GOT_MUTEX;
+ t1_result_DuplicateHandle_test10=WR_GOT_MUTEX;
/* wait for main thread to tell us to release the mutex */
- while(WR_GOT_MUTEX == t1_result)
+ while(WR_GOT_MUTEX == t1_result_DuplicateHandle_test10)
Sleep(1);
ReleaseSemaphore((HANDLE)lpParam, 1, NULL);
/* tell the main thread we released the mutex */
- t1_result = WR_RELEASED;
+ t1_result_DuplicateHandle_test10 = WR_RELEASED;
}
else
{
- t1_result = WR_TIMED_OUT;
+ t1_result_DuplicateHandle_test10 = WR_TIMED_OUT;
}
return 0;
}
-DWORD PALAPI ThreadTest2(LPVOID lpParam)
+DWORD PALAPI ThreadTest2_DuplicateHandle_test10(LPVOID lpParam)
{
DWORD dwWait;
if (dwWait == WAIT_OBJECT_0)
{
ReleaseSemaphore((HANDLE)lpParam, 1, NULL);
- t2_result = WR_GOT_MUTEX;
+ t2_result_DuplicateHandle_test10 = WR_GOT_MUTEX;
}
else
{
- t2_result = WR_TIMED_OUT;
+ t2_result_DuplicateHandle_test10 = WR_TIMED_OUT;
}
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test10_paltest_duplicatehandle_test10, "threading/DuplicateHandle/test10/paltest_duplicatehandle_test10")
{
HANDLE hDupSemaphore;
/*Create a thread to test the Semaphore*/
hThread = CreateThread(NULL,
0,
- &ThreadTest1,
+ &ThreadTest1_DuplicateHandle_test10,
hSemaphore,
0,
&dwThreadId);
}
/* wait until thread has taken the mutex */
- while (WR_WAITING == t1_result)
+ while (WR_WAITING == t1_result_DuplicateHandle_test10)
Sleep(1);
- if(WR_TIMED_OUT == t1_result)
+ if(WR_TIMED_OUT == t1_result_DuplicateHandle_test10)
{
Trace("PALSUITE ERROR: %u: thread couldn't acquire the semaphore\n",
GetLastError());
thread*/
hThread2 = CreateThread(NULL,
0,
- &ThreadTest2,
+ &ThreadTest2_DuplicateHandle_test10,
hDupSemaphore,
0,
&dwThreadId);
}
/* wait until thread has tried to take the mutex */
- while (WR_WAITING == t2_result)
+ while (WR_WAITING == t2_result_DuplicateHandle_test10)
Sleep(1);
-
- if (WR_TIMED_OUT != t2_result )
+
+ if (WR_TIMED_OUT != t2_result_DuplicateHandle_test10 )
{
Trace("PALSUITE ERROR:%u: Able to take mutex %#x while its "
"duplicate %#x is held\n", GetLastError(), hDupSemaphore,
}
/* reset second thread status */
- t2_result = WR_WAITING;
+ t2_result_DuplicateHandle_test10 = WR_WAITING;
/* tell thread 1 to release the mutex */
- t1_result = WR_WAITING;
+ t1_result_DuplicateHandle_test10 = WR_WAITING;
/* wait for thread 1 to release the mutex */
- while (WR_WAITING == t1_result)
+ while (WR_WAITING == t1_result_DuplicateHandle_test10)
Sleep(1);
CloseHandle(hThread2);
put WR_GOT_MUTEX into t2_result */
hThread2 = CreateThread(NULL,
0,
- &ThreadTest2,
+ &ThreadTest2_DuplicateHandle_test10,
hDupSemaphore,
0,
&dwThreadId);
}
/* wait until thread has taken the semaphore */
- while (WR_WAITING == t2_result)
+ while (WR_WAITING == t2_result_DuplicateHandle_test10)
Sleep(1);
-
- if (WR_GOT_MUTEX != t2_result )
+
+ if (WR_GOT_MUTEX != t2_result_DuplicateHandle_test10 )
{
Trace("PALSUITE ERROR:%u: Unable to take semaphore %#x after its"
" duplicate %#x was released\n", GetLastError(), hDupSemaphore,
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle (CreateSemaphore)
-TYPE = DEFAULT
-EXE1 = test10
-Description
-= Tests the PAL implementation of the DuplicateHandle function.
-= This test duplication of a Semaphore handle. The test will
-= create a Semaphore and duplicate a handle to it.
-= Then two subthreads will be used to verify that they can selectively
-= block each other with different handles that refer to the
-= same Semaphore
+++ /dev/null
-set(TESTSOURCES
- test11.cpp
-)
-
-add_executable(paltest_duplicatehandle_test11
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test11 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test11
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- childprocess.cpp
-)
-
-add_executable(paltest_duplicatehandle_test11_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test11_child coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test11_child
- ${COMMON_TEST_LIBRARIES}
-)
#include "myexitcode.h"
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_DuplicateHandle_test11_paltest_duplicatehandle_test11_child, "threading/DuplicateHandle/test11/paltest_duplicatehandle_test11_child")
{
HANDLE hMutex;
WCHAR wszMutexName[] = { 'T','E','S','T','1','1','\0' };
#include <palsuite.h>
#include "myexitcode.h"
-
-static const char* rgchPathDelim = "\\";
-
-
-int
-mkAbsoluteFilename( LPSTR dirName,
- DWORD dwDirLength,
- LPCSTR fileName,
- DWORD dwFileLength,
- LPSTR absPathName )
-{
- DWORD sizeDN, sizeFN, sizeAPN;
-
- sizeDN = strlen( dirName );
- sizeFN = strlen( fileName );
- sizeAPN = (sizeDN + 1 + sizeFN + 1);
-
- /* ensure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
- if( sizeAPN > _MAX_PATH )
- {
- return ( 0 );
- }
-
- strncpy( absPathName, dirName, dwDirLength +1 );
- strncpy( absPathName, rgchPathDelim, 2 );
- strncpy( absPathName, fileName, dwFileLength +1 );
-
- return (sizeAPN);
-
-}
-
-
-int __cdecl main( int argc, char **argv )
-
+PALTEST(threading_DuplicateHandle_test11_paltest_duplicatehandle_test11, "threading/DuplicateHandle/test11/paltest_duplicatehandle_test11")
{
const char* rgchChildFile = "childprocess";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle
-TYPE = DEFAULT
-EXE1 = test11
-EXE2 = childprocess
-Description
-= Test to ensure proper operation of the DuplicateHandle API.
-= The test launches a trivial child process, then opens
-= a handle to it using OpenProcess. It then duplicates that
-= handle and uses it to wait for the child process to terminate,
-= and then checks the exit code of the child process in order to
-= verify that it was in fact a handle to the correct= process. The test tries to duplicate the handle again after
-= the process has been closed, to verify that failure ensues.
+++ /dev/null
-set(SOURCES
- test12.cpp
-)
-
-add_executable(paltest_duplicatehandle_test12
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test12 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test12
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test12_paltest_duplicatehandle_test12, "threading/DuplicateHandle/test12/paltest_duplicatehandle_test12")
{
HANDLE hFile;
HANDLE hDupFile;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Positive Test for DuplicateHandle
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the DuplicateHandle function.
-= This test will create handle to file (to write),
-= then call duplicate handle, and close the original handle
-= and then use duplicated handle to read what was written.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_duplicatehandle_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test2 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test2
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test2_paltest_duplicatehandle_test2, "threading/DuplicateHandle/test2/paltest_duplicatehandle_test2")
{
HANDLE hEvent;
HANDLE hDupEvent;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Tests the PAL implementation of the DuplicateHandle function.
-= This will test duplication of an CreateEvent handle. Test an
-= event in a signaled state to wait, and then set the duplicate
-= to nonsignaled state and perform the wait again. The wait on
-= the event should fail. Test the duplication of closed and NULL
-= events, these should fail.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_duplicatehandle_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test3 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test3
- ${COMMON_TEST_LIBRARIES}
-)
**===================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test3_paltest_duplicatehandle_test3, "threading/DuplicateHandle/test3/paltest_duplicatehandle_test3")
{
HANDLE hCreateEvent;
HANDLE hOpenEvent;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Tests the PAL implementation of the DuplicateHandle function.
-= This will test duplication of an OpenEvent handle. Test an
-= event in a signaled state to wait, and then set the duplicate
-= to nonsignaled state and perform the wait again. The wait on
-= the event should fail. Test the duplication of closed and NULL
-= events, these should fail.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_duplicatehandle_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test4 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test4
- ${COMMON_TEST_LIBRARIES}
-)
};
-volatile int t1_result=WR_WAITING;
-volatile int t2_result=WR_WAITING;
+volatile int t1_result_DuplicateHandle_test4=WR_WAITING;
+volatile int t2_result_DuplicateHandle_test4=WR_WAITING;
-DWORD PALAPI ThreadTest1(LPVOID lpParam)
+DWORD PALAPI ThreadTest1_DuplicateHandle_test4(LPVOID lpParam)
{
DWORD dwWait;
if (dwWait == WAIT_OBJECT_0)
{
/* tell the main thread we got the mutex */
- t1_result=WR_GOT_MUTEX;
+ t1_result_DuplicateHandle_test4=WR_GOT_MUTEX;
/* wait for main thread to tell us to release the mutex */
- while(WR_GOT_MUTEX == t1_result)
+ while(WR_GOT_MUTEX == t1_result_DuplicateHandle_test4)
Sleep(1);
ReleaseMutex((HANDLE)lpParam);
/* tell the main thread we released the mutex */
- t1_result = WR_RELEASED;
+ t1_result_DuplicateHandle_test4 = WR_RELEASED;
}
else
{
- t1_result = WR_TIMED_OUT;
+ t1_result_DuplicateHandle_test4 = WR_TIMED_OUT;
}
return 0;
}
-DWORD PALAPI ThreadTest2(LPVOID lpParam)
+DWORD PALAPI ThreadTest2_DuplicateHandle_test4(LPVOID lpParam)
{
DWORD dwWait;
if (dwWait == WAIT_OBJECT_0)
{
ReleaseMutex((HANDLE)lpParam);
- t2_result = WR_GOT_MUTEX;
+ t2_result_DuplicateHandle_test4 = WR_GOT_MUTEX;
}
else
{
- t2_result = WR_TIMED_OUT;
+ t2_result_DuplicateHandle_test4 = WR_TIMED_OUT;
}
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test4_paltest_duplicatehandle_test4, "threading/DuplicateHandle/test4/paltest_duplicatehandle_test4")
{
HANDLE hDupMutex;
/*Create a thread to test the Mutex*/
hThread = CreateThread(NULL,
0,
- &ThreadTest1,
+ &ThreadTest1_DuplicateHandle_test4,
hMutex,
0,
&dwThreadId);
}
/* wait until thread has taken the mutex */
- while (WR_WAITING == t1_result)
+ while (WR_WAITING == t1_result_DuplicateHandle_test4)
Sleep(1);
- if(WR_TIMED_OUT == t1_result)
+ if(WR_TIMED_OUT == t1_result_DuplicateHandle_test4)
{
Trace("ERROR: %u: thread 1 couldn't acquire the mutex\n");
CloseHandle(hMutex);
/*This should fail since the Mutex is owned hThread*/
hThread2 = CreateThread(NULL,
0,
- &ThreadTest2,
+ &ThreadTest2_DuplicateHandle_test4,
hDupMutex,
0,
&dwThreadId);
}
/* wait until thread has tried to take the mutex */
- while (WR_WAITING == t2_result)
+ while (WR_WAITING == t2_result_DuplicateHandle_test4)
Sleep(1);
- if (WR_TIMED_OUT != t2_result )
+ if (WR_TIMED_OUT != t2_result_DuplicateHandle_test4 )
{
Trace("ERROR:%u: Able to take mutex %#x while its duplicate %#x is "
"held\n", hDupMutex, hMutex);
}
/* reset second thread status */
- t2_result = WR_WAITING;
+ t2_result_DuplicateHandle_test4 = WR_WAITING;
/* tell thread 1 to release the mutex */
- t1_result = WR_WAITING;
+ t1_result_DuplicateHandle_test4 = WR_WAITING;
/* wait for thread 1 to release the mutex */
- while (WR_WAITING == t1_result)
+ while (WR_WAITING == t1_result_DuplicateHandle_test4)
Sleep(1);
CloseHandle(hThread2);
/*This test should pass, the Mutex has since been released*/
hThread2 = CreateThread(NULL,
0,
- &ThreadTest2,
+ &ThreadTest2_DuplicateHandle_test4,
hDupMutex,
0,
&dwThreadId);
}
/* wait until thread has taken the mutex */
- while (WR_WAITING == t2_result)
+ while (WR_WAITING == t2_result_DuplicateHandle_test4)
Sleep(1);
- if (WR_GOT_MUTEX != t2_result )
+ if (WR_GOT_MUTEX != t2_result_DuplicateHandle_test4 )
{
Trace("ERROR:%u: Unable to take mutex %#x after its duplicate %#x was "
"released\n", hDupMutex, hMutex);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle (CreateMutex)
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Tests the PAL implementation of the DuplicateHandle function.
-= This test duplication of a Mutex handle. The test will comprise
-= of creating a Mutex and its duplicate and create a thread that will
-= get ownership. Another thread will be create that will attempt to
-= get ownership of the duplicate Mutex, this will fail, since the
-= Mutex is owned by another thread. The Mutex will be released and
-= then the thread will attempt to get ownership of the duplicate
-= Mutex, this will succeed.
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_duplicatehandle_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test5 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* cTestString = "one fish, two fish, red fish, blue fish.";
+#define cTestString "one fish, two fish, read fish, blue fish."
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test5_paltest_duplicatehandle_test5, "threading/DuplicateHandle/test5/paltest_duplicatehandle_test5")
{
HANDLE hReadPipe = NULL;
HANDLE hWritePipe = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle (CreatePipe)
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Tests the PAL implementation of the DuplicateHandle function,
-= with CreatePipe. This test will create a pipe and write to it,
-= then duplicate the read handle and read what was written.
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_duplicatehandle_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test6 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-const char* cTestString = "one fish, two fish, red fish, blue fish.";
+#define cTestString "one fish, two fish, read fish, blue fish."
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_DuplicateHandle_test6_paltest_duplicatehandle_test6, "threading/DuplicateHandle/test6/paltest_duplicatehandle_test6")
{
HANDLE hReadPipe = NULL;
HANDLE hWritePipe = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle (CreatePipe)
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Tests the PAL implementation of the DuplicateHandle function,
-= with CreatePipe. This test will create a pipe, then duplicate
-= the write handle, write to the handle, and use the read to
-= verify.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_duplicatehandle_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test7 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-DWORD PALAPI CreateTestThread(LPVOID lpParam);
+DWORD PALAPI CreateTestThread_DuplicateHandle_test7(LPVOID lpParam);
-int __cdecl main(int argc, char* argv[])
+PALTEST(threading_DuplicateHandle_test7_paltest_duplicatehandle_test7, "threading/DuplicateHandle/test7/paltest_duplicatehandle_test7")
{
HANDLE hThread;
HANDLE hDupThread;
DWORD dwThreadId = 0;
- LPTHREAD_START_ROUTINE lpStartAddress = &CreateTestThread;
+ LPTHREAD_START_ROUTINE lpStartAddress = &CreateTestThread_DuplicateHandle_test7;
HANDLE hSyncEvent;
int threadPriority;
}
/*Thread testing function*/
-DWORD PALAPI CreateTestThread(LPVOID lpParam)
+DWORD PALAPI CreateTestThread_DuplicateHandle_test7(LPVOID lpParam)
{
HANDLE hSyncEvent = (HANDLE)lpParam;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle (CreateThread)
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Tests the PAL implementation of the DuplicateHandle function,
-= with a handle from CreateThread. The test will create a thread
-= handle and its duplicate. Then get the priorities of the threads,
-= set the priority of one and the change should be seen in the
-= other.
+++ /dev/null
-set(SOURCES
- test8.cpp
-)
-
-add_executable(paltest_duplicatehandle_test8
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test8 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test8
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-DWORD PALAPI CreateTestThread(LPVOID lpParam);
+DWORD PALAPI CreateTestThread_DuplicateHandle_test8(LPVOID lpParam);
-int __cdecl main(int argc, char* argv[])
+PALTEST(threading_DuplicateHandle_test8_paltest_duplicatehandle_test8, "threading/DuplicateHandle/test8/paltest_duplicatehandle_test8")
{
HANDLE hThread;
HANDLE hCurrentThread;
HANDLE hDupThread;
DWORD dwThreadId = 0;
- LPTHREAD_START_ROUTINE lpStartAddress = &CreateTestThread;
+ LPTHREAD_START_ROUTINE lpStartAddress = &CreateTestThread_DuplicateHandle_test8;
int threadPriority;
int duplicatePriority;
}
/*Thread testing function, only return '0'*/
-DWORD PALAPI CreateTestThread(LPVOID lpParam)
+DWORD PALAPI CreateTestThread_DuplicateHandle_test8(LPVOID lpParam)
{
return (DWORD)0;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle (GetCurrentThread)
-TYPE = DEFAULT
-EXE1 = test8
-Description
-=Tests the PAL implementation of the DuplicateHandle function,
-=with a handle from GetCurrentThread. The test will create a thread
-=handle, get the current thread and its duplicate. Then get the
-=priorities of the threads, set the priority of one and the change
-=should be seen in the other.
+++ /dev/null
-set(SOURCES
- test9.cpp
-)
-
-add_executable(paltest_duplicatehandle_test9
- ${SOURCES}
-)
-
-add_dependencies(paltest_duplicatehandle_test9 coreclrpal)
-
-target_link_libraries(paltest_duplicatehandle_test9
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char* argv[])
+PALTEST(threading_DuplicateHandle_test9_paltest_duplicatehandle_test9, "threading/DuplicateHandle/test9/paltest_duplicatehandle_test9")
{
HANDLE hProcess;
HANDLE hDupProcess;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = DuplicateHandle
-Name = Test for DuplicateHandle (GetCurrentProcess)
-TYPE = DEFAULT
-EXE1 = test9
-Description
-= Tests the PAL implementation of the DuplicateHandle function,
-= with a handle from GetCurrentProcess. The test will create a
-= process, duplicate it, then using ReadProcessMemory will
-= read from the memory location of the CreateProcess process
-= memory and the DuplicateHandle process memory. If the
-= duplication is correct the memory will be the same for both.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- ExitProcess.cpp
-)
-
-add_executable(paltest_exitprocess_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_exitprocess_test1 coreclrpal)
-
-target_link_libraries(paltest_exitprocess_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_ExitProcess_test1_paltest_exitprocess_test1, "threading/ExitProcess/test1/paltest_exitprocess_test1")
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ExitProcess
-Name = Positive Test for ExitProcess
-TYPE = DEFAULT
-EXE1 = exitprocess
-Description
-= Test the ExitProcess function. The test runs the ExitProcess function
-= with the TEST_RETURN enumeration value PASS
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_exitprocess_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_exitprocess_test2 coreclrpal)
-
-target_link_libraries(paltest_exitprocess_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_ExitProcess_test2_paltest_exitprocess_test2, "threading/ExitProcess/test2/paltest_exitprocess_test2")
{
/* call ExitProcess() -- should work without PAL_Initialize() */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ExitProcess
-Name = Positive test for ExitProcess
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure proper operation of the ExitProcess()
-= API by ensuring it works before PAL_Initialize() is
-= called.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_exitprocess_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_exitprocess_test3 coreclrpal)
-
-target_link_libraries(paltest_exitprocess_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_ExitProcess_test3_paltest_exitprocess_test3, "threading/ExitProcess/test3/paltest_exitprocess_test3")
{
/* initialize the PAL */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ExitProcess
-Name = Positive test for ExitProcess
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Test to ensure proper operation of the ExitProcess()
-= API by ensuring it works after PAL_Terminate() is
-= called.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_exitthread_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_exitthread_test1 coreclrpal)
-
-target_link_libraries(paltest_exitthread_test1
- ${COMMON_TEST_LIBRARIES}
-)
return bRet;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_ExitThread_test1_paltest_exitthread_test1, "threading/ExitThread/test1/paltest_exitthread_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ExitThread
-Name = Positive Test for ExitThread
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for ExitThread. Create a thread and then call
-= exit thread within the threading function. Ensure that it exits
-= immediatly.
+++ /dev/null
-set(TESTSOURCES
- test2.cpp
-)
-
-add_executable(paltest_exitthread_test2
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_exitthread_test2 coreclrpal)
-
-target_link_libraries(paltest_exitthread_test2
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- childprocess.cpp
-)
-
-add_executable(paltest_exitthread_test2_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_exitthread_test2_child coreclrpal)
-
-target_link_libraries(paltest_exitthread_test2_child
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
#include "myexitcode.h"
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_ExitThread_test2_paltest_exitthread_test2_child, "threading/ExitThread/test2/paltest_exitthread_test2_child")
{
/* initialize the PAL */
if( PAL_Initialize(argc, argv) != 0 )
#include <palsuite.h>
#include "myexitcode.h"
-
-static const char* rgchPathDelim = "\\";
-
-
-int
-mkAbsoluteFilename( LPSTR dirName,
- DWORD dwDirLength,
- LPCSTR fileName,
- DWORD dwFileLength,
- LPSTR absPathName )
-{
- DWORD sizeDN, sizeFN, sizeAPN;
-
- sizeDN = strlen( dirName );
- sizeFN = strlen( fileName );
- sizeAPN = (sizeDN + 1 + sizeFN + 1);
-
- /* ensure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
- if( sizeAPN > _MAX_PATH )
- {
- return ( 0 );
- }
-
- strncpy( absPathName, dirName, dwDirLength +1 );
- strncpy( absPathName, rgchPathDelim, 2 );
- strncpy( absPathName, fileName, dwFileLength +1 );
-
- return (sizeAPN);
-
-}
-
-
-int __cdecl main( int argc, char **argv )
-
+PALTEST(threading_ExitThread_test2_paltest_exitthread_test2, "threading/ExitThread/test2/paltest_exitthread_test2")
{
const char* rgchChildFile = "childprocess";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ExitThread
-Name = Test for ExitThread
-TYPE = DEFAULT
-EXE1 = test2
-EXE2 = childprocess
-Description
-= Test to ensure proper operation of the ExitThread
-= API. This test launches a simple child process that exits
-= by calling ExitThread() with a known value, and checks
-= that the correct value is returned to the parent process.
-= This verifies that when the last thread of a process exits
-= via ExitThread, the process exits with the proper return
-= code.
*
* Dummy thread function for causing DLL thread notifications.
*/
-DWORD PALAPI ThreadFunc( LPVOID param )
+DWORD PALAPI ThreadFunc_ExitThread_test3( LPVOID param )
{
/* simulate some brief "work" */
int i;
/* run another dummy thread to cause notification of the library */
hThread = CreateThread( NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE) ThreadFunc, /* thread function */
+ (LPTHREAD_START_ROUTINE) ThreadFunc_ExitThread_test3, /* thread function */
(LPVOID) NULL, /* pass thread index as */
/* function argument */
CREATE_SUSPENDED, /* create suspended */
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- process.cpp
-)
-
-add_executable(paltest_getcurrentprocess_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcurrentprocess_test1 coreclrpal)
-
-target_link_libraries(paltest_getcurrentprocess_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-INT __cdecl main( int argc, char **argv )
+PALTEST(threading_GetCurrentProcess_test1_paltest_getcurrentprocess_test1, "threading/GetCurrentProcess/test1/paltest_getcurrentprocess_test1")
{
HANDLE hProcess;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = GetCurrentProcess
-Name = Positive Test for GetCurrentProcess
-TYPE = DEFAULT
-EXE1 = process
-Description
-= Test to see if the function GetCurrentProcess returns a handle to the
-= current process or not.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- processId.cpp
-)
-
-add_executable(paltest_getcurrentprocessid_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcurrentprocessid_test1 coreclrpal)
-
-target_link_libraries(paltest_getcurrentprocessid_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-INT __cdecl main( int argc, char **argv )
+PALTEST(threading_GetCurrentProcessId_test1_paltest_getcurrentprocessid_test1, "threading/GetCurrentProcessId/test1/paltest_getcurrentprocessid_test1")
{
DWORD dwProcessId;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = GetCurrentProcessId
-Name = Positive Test for GetCurrentProcessId
-TYPE = DEFAULT
-EXE1 = processid
-Description
-= Test to ensure GetCurrentProcessId returns the current process id number.
-= This test compares the result of GetCurrentProcessId to getpid.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- thread.cpp
-)
-
-add_executable(paltest_getcurrentthread_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcurrentthread_test1 coreclrpal)
-
-target_link_libraries(paltest_getcurrentthread_test1
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = GetCurrentThread
-Name = Positive Test for GetCurrentThread
-TYPE = DEFAULT
-EXE1 = thread
-Description
-= Test to ensure GetCurrentThread returns a handle to the current thread.
#include <palsuite.h>
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_GetCurrentThread_test1_paltest_getcurrentthread_test1, "threading/GetCurrentThread/test1/paltest_getcurrentthread_test1")
{
HANDLE hThread;
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_getcurrentthread_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcurrentthread_test2 coreclrpal)
-
-target_link_libraries(paltest_getcurrentthread_test2
- ${COMMON_TEST_LIBRARIES}
-)
* Thread function that calls GetCurrentThread() to get a pseudo-handle
* to itself, then checks its priority and exits with that value.
*/
-DWORD PALAPI ThreadFunc( LPVOID param )
+DWORD PALAPI ThreadFunc_GetCurrentThread_test2( LPVOID param )
{
int priority;
HANDLE hThread;
*
* executable entry point
*/
-INT __cdecl main( INT argc, CHAR **argv )
+PALTEST(threading_GetCurrentThread_test2_paltest_getcurrentthread_test2, "threading/GetCurrentThread/test2/paltest_getcurrentthread_test2")
{
HANDLE hThread = NULL;
DWORD IDThread;
/* Create multiple threads. */
hThread = CreateThread( NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE) ThreadFunc, /* thread function */
+ (LPTHREAD_START_ROUTINE) ThreadFunc_GetCurrentThread_test2, /* thread function */
(LPVOID) i, /* pass thread index as */
/* function argument */
CREATE_SUSPENDED, /* create suspended */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = GetCurrentThread
-Name = Test for GetCurrentThread
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure proper operation of the GetCurrentThread()
-= API. The test launches a thread in suspended mode, and sets
-= its priority to a non-default value using the handle returned
-= by CreateThread(). The new thread calls GetCurrentThred() to
-= retrieve a handle to itself, and calls GetThreadPriority()
-= to verify that its priority matches what it was set to on
-= the main execution thread.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- threadId.cpp
-)
-
-add_executable(paltest_getcurrentthreadid_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getcurrentthreadid_test1 coreclrpal)
-
-target_link_libraries(paltest_getcurrentthreadid_test1
- ${COMMON_TEST_LIBRARIES}
-)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = GetCurrentThreadId
-Name = Positive Test for GetCurrentThreadId
-TYPE = DEFAULT
-EXE1 = threadid
-Description
-= Test to ensure GetCurrentThreadId returns the threadId of the current
-= thread.
return 0;
}
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_GetCurrentThreadId_test1_paltest_getcurrentthreadid_test1, "threading/GetCurrentThreadId/test1/paltest_getcurrentthreadid_test1")
{
extern DWORD dwThreadIdTF;
DWORD dwThreadIdCT;
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(TESTSOURCES
- test1.cpp
-)
-
-add_executable(paltest_getexitcodeprocess_test1
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_getexitcodeprocess_test1 coreclrpal)
-
-target_link_libraries(paltest_getexitcodeprocess_test1
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- childProcess.cpp
-)
-
-add_executable(paltest_getexitcodeprocess_test1_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_getexitcodeprocess_test1_child coreclrpal)
-
-target_link_libraries(paltest_getexitcodeprocess_test1_child
- ${COMMON_TEST_LIBRARIES}
-)
#include <pal.h>
#include "myexitcode.h"
+#include <palsuite.h>
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_GetExitCodeProcess_test1_paltest_getexitcodeprocess_test1_child, "threading/GetExitCodeProcess/test1/paltest_getexitcodeprocess_test1_child")
{
int i;
#include <palsuite.h>
#include "myexitcode.h"
-
-static const char* rgchPathDelim = "\\";
-
-
-int
-mkAbsoluteFilename( LPSTR dirName,
- DWORD dwDirLength,
- LPCSTR fileName,
- DWORD dwFileLength,
- LPSTR absPathName )
-{
- DWORD sizeDN, sizeFN, sizeAPN;
-
- sizeDN = strlen( dirName );
- sizeFN = strlen( fileName );
- sizeAPN = (sizeDN + 1 + sizeFN + 1);
-
- /* ensure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
- if( sizeAPN > _MAX_PATH )
- {
- return ( 0 );
- }
-
- strncpy( absPathName, dirName, dwDirLength +1 );
- strncpy( absPathName, rgchPathDelim, 2 );
- strncpy( absPathName, fileName, dwFileLength +1 );
-
- return (sizeAPN);
-
-}
-
-
-int __cdecl main( int argc, char **argv )
-
+PALTEST(threading_GetExitCodeProcess_test1_paltest_getexitcodeprocess_test1, "threading/GetExitCodeProcess/test1/paltest_getexitcodeprocess_test1")
{
const char* rgchChildFile = "childprocess";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = GetExitCodeProcess
-Name = Test for GetExitCodeProcess
-TYPE = DEFAULT
-EXE1 = test1
-EXE2 = childprocess
-Description
-= Test to ensure proper operation of the GetExitCodeProcess
-= API. This test launches a simple child process that exits
-= with a known value, and checks that the correct value is
-= returned by the function.
+++ /dev/null
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_getprocesstimes_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_getprocesstimes_test2 coreclrpal)
-
-target_link_libraries(paltest_getprocesstimes_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_GetProcessTimes_test2_paltest_getprocesstimes_test2, "threading/GetProcessTimes/test2/paltest_getprocesstimes_test2")
{
int i, j, k;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = GetProcessTimes
-Name = Test for GetProcessTimes
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure proper operation of the GetProcessTimes()
-= API. This test simply checks the kernel/user times for the
-= the current process, which is the only thing supported
-= for this function under the PAL.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_getthreadtimes_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_getthreadtimes_test1 coreclrpal)
-
-target_link_libraries(paltest_getthreadtimes_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(threading_GetThreadTimes_test1_paltest_getthreadtimes_test1, "threading/GetThreadTimes/test1/paltest_getthreadtimes_test1")
+{
int ret = FAIL;
//Test is failing unreliably, so for now we always return pass.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- namedmutex.cpp
- nopal.cpp
-)
-
-add_executable(paltest_namedmutex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_namedmutex_test1 coreclrpal)
-
-target_link_libraries(paltest_namedmutex_test1
- ${COMMON_TEST_LIBRARIES}
-)
processCommandLinePathLength += test_strlen(g_processPath);
g_processCommandLinePath[processCommandLinePathLength++] = '\"';
g_processCommandLinePath[processCommandLinePathLength++] = ' ';
+ processCommandLinePathLength += test_sprintf(&g_processCommandLinePath[processCommandLinePathLength], "%s ", "threading/NamedMutex/test1/paltest_namedmutex_test1");
+
processCommandLinePathLength += test_sprintf(&g_processCommandLinePath[processCommandLinePathLength], "%u", g_parentPid);
g_processCommandLinePath[processCommandLinePathLength++] = ' ';
test_strcpy(&g_processCommandLinePath[processCommandLinePathLength], funcName);
return static_cast<bool>(g_stressResult);
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_NamedMutex_test1_paltest_namedmutex_test1, "threading/NamedMutex/test1/paltest_namedmutex_test1")
{
if (argc < 1 || argc > 4)
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = Named mutex
-Name = Tests for named mutexes
-TYPE = DEFAULT
-EXE1 = namedmutex
-Description
-= These test cases test named mutexes, including positive
-= and negative cases, cross-thread and cross-process, mutual
-= exclusion, abandon detection, etc.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_openeventw_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_openeventw_test1 coreclrpal)
-
-target_link_libraries(paltest_openeventw_test1
- ${COMMON_TEST_LIBRARIES}
-)
**==========================================================================*/
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_OpenEventW_test1_paltest_openeventw_test1, "threading/OpenEventW/test1/paltest_openeventw_test1")
{
BOOL bRet = FAIL;
DWORD dwRet;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = OpenEventW
-Name = Positive Test for OpenEventW
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Purpose: Test for OpenEventW. This test creates an event,
-= opens a handle to the same event, then waits on both handles
-= in both a signalled and non-signalled state to verify they're
-= pointing to the same event object.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_openeventw_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_openeventw_test2 coreclrpal)
-
-target_link_libraries(paltest_openeventw_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_OpenEventW_test2_paltest_openeventw_test2, "threading/OpenEventW/test2/paltest_openeventw_test2")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = OpenEventW
-Name = Positive test for OpenEventW
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure proper operation of the OpenEventW()
-= API by creating a new named event and verifying that
-= it can be used interchangeably by setting the event
-= with the original handle and waiting on it with the
-= new one, then resetting it with the new one and waiting
-= on it with the original one.
+++ /dev/null
-set(TESTSOURCES
- test3.cpp
-)
-
-add_executable(paltest_openeventw_test3
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_openeventw_test3 coreclrpal)
-
-target_link_libraries(paltest_openeventw_test3
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- childprocess.cpp
-)
-
-add_executable(paltest_openeventw_test3_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_openeventw_test3_child coreclrpal)
-
-target_link_libraries(paltest_openeventw_test3_child
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_OpenEventW_test3_paltest_openeventw_test3_child, "threading/OpenEventW/test3/paltest_openeventw_test3_child")
{
/* local variables */
HANDLE hEvent = NULL;
#define TIMEOUT 60000
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_OpenEventW_test3_paltest_openeventw_test3, "threading/OpenEventW/test3/paltest_openeventw_test3")
{
BOOL ret = FAIL;
LPSECURITY_ATTRIBUTES lpEventAttributes = NULL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = OpenEventW
-Name = Test for OpenEventW
-TYPE = DEFAULT
-EXE1 = test3
-EXE2 = childprocess
-Description
-= Purpose: Test to ensure that OpenEventW() works when
-= opening an event created by another process. This test
-= program launches a child process which creates a
-= named, initially-unset event. The child waits up to
-= 10 seconds for the parent process to open that event
-= and set it, and returns PASS if the event was set or FAIL
-= otherwise. The parent process checks the return value
-= from the child to verify that the opened event was
-= properly used across processes.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_openeventw_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_openeventw_test4 coreclrpal)
-
-target_link_libraries(paltest_openeventw_test4
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_OpenEventW_test4_paltest_openeventw_test4, "threading/OpenEventW/test4/paltest_openeventw_test4")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = OpenEventW
-Name = Negative test for OpenEventW
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test to ensure proper operation of the OpenEventW()
-= API by trying to open an event with a name that is
-= already taken by a non-event object.
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_openeventw_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_openeventw_test5 coreclrpal)
-
-target_link_libraries(paltest_openeventw_test5
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_OpenEventW_test5_paltest_openeventw_test5, "threading/OpenEventW/test5/paltest_openeventw_test5")
{
/* local variables */
/* PAL termination */
- PAL_Terminate();
+ PAL_TerminateEx(ret);
/* return success or failure */
return ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = OpenEventW
-Name = Positive test for OpenEventW
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Test to ensure proper operation of the OpenEventW()
-= API by creating a new named event with CreateEventW()
-= and verifying that it can be opened with OpenEventW().
-= It should be possible to use the event handles
-= interchangeably, we test by setting the event with the
-= original handle and waiting on it with the new one,
-= then resetting it with the new one and waiting
-= on it with the original one.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(TESTSOURCES
- test1.cpp
-)
-
-add_executable(paltest_openprocess_test1
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_openprocess_test1 coreclrpal)
-
-target_link_libraries(paltest_openprocess_test1
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- childProcess.cpp
-)
-
-add_executable(paltest_openprocess_test1_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_openprocess_test1_child coreclrpal)
-
-target_link_libraries(paltest_openprocess_test1_child
- ${COMMON_TEST_LIBRARIES}
-)
#include "myexitcode.h"
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_OpenProcess_test1_paltest_openprocess_test1_child, "threading/OpenProcess/test1/paltest_openprocess_test1_child")
{
HANDLE hMutex;
WCHAR wszMutexName[] = { 'T','E','S','T','1','\0' };
#include <palsuite.h>
#include "myexitcode.h"
-
-static const char* rgchPathDelim = "\\";
-
-
-int
-mkAbsoluteFilename( LPSTR dirName,
- DWORD dwDirLength,
- LPCSTR fileName,
- DWORD dwFileLength,
- LPSTR absPathName )
-{
- DWORD sizeDN, sizeFN, sizeAPN;
-
- sizeDN = strlen( dirName );
- sizeFN = strlen( fileName );
- sizeAPN = (sizeDN + 1 + sizeFN + 1);
-
- /* ensure ((dirName + DELIM + fileName + \0) =< _MAX_PATH ) */
- if( sizeAPN > _MAX_PATH )
- {
- return ( 0 );
- }
-
- strncpy( absPathName, dirName, dwDirLength +1 );
- strncpy( absPathName, rgchPathDelim, 2 );
- strncpy( absPathName, fileName, dwFileLength +1 );
-
- return (sizeAPN);
-
-}
-
-
-int __cdecl main( int argc, char **argv )
-
+PALTEST(threading_OpenProcess_test1_paltest_openprocess_test1, "threading/OpenProcess/test1/paltest_openprocess_test1")
{
const char* rgchChildFile = "childprocess";
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = OpenProcess
-Name = Test for OpenProcess
-TYPE = DEFAULT
-EXE1 = test1
-EXE2 = childprocess
-Description
-= Test to ensure proper operation of the OpenProcess API.
-= The test launches a trivial child process, then opens
-= a handle to it using OpenProcess. It uses that handle
-= to wait for the child process to terminate, and then
-= checks the exit code of the child process in order to
-= verify that it was in fact a handle to the correct
-= process.
+++ /dev/null
-add_subdirectory(test1)
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_querythreadcycletime_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_querythreadcycletime_test1 coreclrpal)
-
-target_link_libraries(paltest_querythreadcycletime_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char *argv[]) {
+PALTEST(threading_QueryThreadCycleTime_test1_paltest_querythreadcycletime_test1, "threading/QueryThreadCycleTime/test1/paltest_querythreadcycletime_test1")
+{
int ret = FAIL;
//Test is failing unreliably, so for now we always return pass.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-add_subdirectory(test7)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_queueuserapc_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_queueuserapc_test1 coreclrpal)
-
-target_link_libraries(paltest_queueuserapc_test1
- ${COMMON_TEST_LIBRARIES}
-)
VOID PALAPI APCFuncB(ULONG_PTR dwParam);
VOID PALAPI APCFuncC(ULONG_PTR dwParam);
VOID PALAPI APCFuncD(ULONG_PTR dwParam);
-DWORD PALAPI SleeperProc(LPVOID lpParameter);
+DWORD PALAPI SleeperProc_QueueUserAPC_test1(LPVOID lpParameter);
-const char *ExpectedResults = "A0B0C0D0A1B1C1D1A2B2C2D2A3B3C3D3";
-char ResultBuffer[256];
-char *ResultPtr;
-DWORD ChildThread;
+const char *ExpectedResults_QueueUserAPC_test1 = "A0B0C0D0A1B1C1D1A2B2C2D2A3B3C3D3";
+char ResultBuffer_QueueUserAPC_test1[256];
+char *ResultPtr_QueueUserAPC_test1;
+DWORD ChildThread_QueueUserAPC_test1;
/* synchronization events */
-static HANDLE hSyncEvent1 = NULL;
-static HANDLE hSyncEvent2 = NULL;
+static HANDLE hSyncEvent1_QueueUserAPC_test1 = NULL;
+static HANDLE hSyncEvent2_QueueUserAPC_test1 = NULL;
/* thread result because we have no GetExitCodeThread() API */
-BOOL bThreadResult = FAIL;
+BOOL bThreadResult_QueueUserAPC_test1 = FAIL;
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_QueueUserAPC_test1_paltest_queueuserapc_test1, "threading/QueueUserAPC/test1/paltest_queueuserapc_test1")
{
HANDLE hThread = NULL;
int ret;
return FAIL;
}
- ResultPtr = ResultBuffer;
+ ResultPtr_QueueUserAPC_test1 = ResultBuffer_QueueUserAPC_test1;
/* create a pair of synchronization events to coordinate our threads */
- hSyncEvent1 = CreateEvent( NULL, FALSE, FALSE, NULL );
- if( hSyncEvent1 == NULL )
+ hSyncEvent1_QueueUserAPC_test1 = CreateEvent( NULL, FALSE, FALSE, NULL );
+ if( hSyncEvent1_QueueUserAPC_test1 == NULL )
{
Trace( "ERROR:%lu:CreateEvent() call failed\n", GetLastError() );
goto cleanup;
}
- hSyncEvent2 = CreateEvent( NULL, FALSE, FALSE, NULL );
- if( hSyncEvent2 == NULL )
+ hSyncEvent2_QueueUserAPC_test1 = CreateEvent( NULL, FALSE, FALSE, NULL );
+ if( hSyncEvent2_QueueUserAPC_test1 == NULL )
{
Trace( "ERROR:%lu:CreateEvent() call failed\n", GetLastError() );
goto cleanup;
/* create a child thread which will call SleepEx */
hThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)SleeperProc,
+ (LPTHREAD_START_ROUTINE)SleeperProc_QueueUserAPC_test1,
0,
0,
- &ChildThread);
+ &ChildThread_QueueUserAPC_test1);
if( hThread == NULL )
{
/* wait on our synchronization event to ensure the thread is running */
- ret = WaitForSingleObject( hSyncEvent1, 20000 );
+ ret = WaitForSingleObject( hSyncEvent1_QueueUserAPC_test1, 20000 );
if( ret != WAIT_OBJECT_0 )
{
Trace( "ERROR:WaitForSingleObject() returned %lu, "
}
/* signal the child thread to continue */
- if( ! SetEvent( hSyncEvent2 ) )
+ if( ! SetEvent( hSyncEvent2_QueueUserAPC_test1 ) )
{
Trace( "ERROR:%lu:SetEvent() call failed\n", GetLastError() );
goto cleanup;
/* wait on our synchronization event to ensure the other thread is done */
- ret = WaitForSingleObject( hSyncEvent1, 20000 );
+ ret = WaitForSingleObject( hSyncEvent1_QueueUserAPC_test1, 20000 );
if( ret != WAIT_OBJECT_0 )
{
Trace( "ERROR:WaitForSingleObject() returned %lu, "
/* check that the thread executed successfully */
- if( bThreadResult == FAIL )
+ if( bThreadResult_QueueUserAPC_test1 == FAIL )
{
goto cleanup;
}
/* check the result buffer */
- if (strcmp(ExpectedResults, ResultBuffer) != 0)
+ if (strcmp(ExpectedResults_QueueUserAPC_test1, ResultBuffer_QueueUserAPC_test1) != 0)
{
Trace( "FAIL:Expected the APC function calls to produce a result of "
" \"%s\", got \"%s\"\n",
- ExpectedResults,
- ResultBuffer );
+ ExpectedResults_QueueUserAPC_test1,
+ ResultBuffer_QueueUserAPC_test1 );
goto cleanup;
}
}
/* close our synchronization handles */
- if( hSyncEvent1 != NULL )
+ if( hSyncEvent1_QueueUserAPC_test1 != NULL )
{
- if( ! CloseHandle( hSyncEvent1 ) )
+ if( ! CloseHandle( hSyncEvent1_QueueUserAPC_test1 ) )
{
Trace( "ERROR:%lu:CloseHandle() call failed\n", GetLastError() );
bResult = FAIL;
}
}
- if( hSyncEvent2 != NULL )
+ if( hSyncEvent2_QueueUserAPC_test1 != NULL )
{
- if( ! CloseHandle( hSyncEvent2 ) )
+ if( ! CloseHandle( hSyncEvent2_QueueUserAPC_test1 ) )
{
Trace( "ERROR:%lu:CloseHandle() call failed\n", GetLastError() );
bResult = FAIL;
{
char val = (int) dwParam;
- if (GetCurrentThreadId() != ChildThread)
+ if (GetCurrentThreadId() != ChildThread_QueueUserAPC_test1)
{
Fail("Executing APC in thread %d, should be in %d!\n",
- GetCurrentThreadId(), ChildThread);
+ GetCurrentThreadId(), ChildThread_QueueUserAPC_test1);
}
- *ResultPtr++ = 'A';
- *ResultPtr++ = val;
- *ResultPtr = 0;
+ *ResultPtr_QueueUserAPC_test1++ = 'A';
+ *ResultPtr_QueueUserAPC_test1++ = val;
+ *ResultPtr_QueueUserAPC_test1 = 0;
}
VOID PALAPI APCFuncB(ULONG_PTR dwParam)
{
char val = (int) dwParam;
- if (GetCurrentThreadId() != ChildThread)
+ if (GetCurrentThreadId() != ChildThread_QueueUserAPC_test1)
{
Fail("Executing APC in thread %d, should be in %d!\n",
- GetCurrentThreadId(), ChildThread);
+ GetCurrentThreadId(), ChildThread_QueueUserAPC_test1);
}
- *ResultPtr++ = 'B';
- *ResultPtr++ = val;
- *ResultPtr = 0;
+ *ResultPtr_QueueUserAPC_test1++ = 'B';
+ *ResultPtr_QueueUserAPC_test1++ = val;
+ *ResultPtr_QueueUserAPC_test1 = 0;
}
VOID PALAPI APCFuncC(ULONG_PTR dwParam)
{
char val = (int) dwParam;
- if (GetCurrentThreadId() != ChildThread)
+ if (GetCurrentThreadId() != ChildThread_QueueUserAPC_test1)
{
Fail("Executing APC in thread %d, should be in %d!\n",
- GetCurrentThreadId(), ChildThread);
+ GetCurrentThreadId(), ChildThread_QueueUserAPC_test1);
}
- *ResultPtr++ = 'C';
- *ResultPtr++ = val;
- *ResultPtr = 0;
+ *ResultPtr_QueueUserAPC_test1++ = 'C';
+ *ResultPtr_QueueUserAPC_test1++ = val;
+ *ResultPtr_QueueUserAPC_test1 = 0;
}
VOID PALAPI APCFuncD(ULONG_PTR dwParam)
{
char val = (int) dwParam;
- if (GetCurrentThreadId() != ChildThread)
+ if (GetCurrentThreadId() != ChildThread_QueueUserAPC_test1)
{
Fail("Executing APC in thread %d, should be in %d!\n",
- GetCurrentThreadId(), ChildThread);
+ GetCurrentThreadId(), ChildThread_QueueUserAPC_test1);
}
- *ResultPtr++ = 'D';
- *ResultPtr++ = val;
- *ResultPtr = 0;
+ *ResultPtr_QueueUserAPC_test1++ = 'D';
+ *ResultPtr_QueueUserAPC_test1++ = val;
+ *ResultPtr_QueueUserAPC_test1 = 0;
}
/* Entry Point for child thread. All it does is call SleepEx. */
-DWORD PALAPI SleeperProc(LPVOID lpParameter)
+DWORD PALAPI SleeperProc_QueueUserAPC_test1(LPVOID lpParameter)
{
DWORD ret;
/* signal the main thread that we're ready to proceed */
- if( ! SetEvent( hSyncEvent1 ) )
+ if( ! SetEvent( hSyncEvent1_QueueUserAPC_test1 ) )
{
Trace( "ERROR:%lu:SetEvent() call failed\n", GetLastError() );
- bThreadResult = FAIL;
+ bThreadResult_QueueUserAPC_test1 = FAIL;
goto done;
}
/* wait for notification from the main thread */
- ret = WaitForSingleObject( hSyncEvent2, 20000 );
+ ret = WaitForSingleObject( hSyncEvent2_QueueUserAPC_test1, 20000 );
if( ret != WAIT_OBJECT_0 )
{
Trace( "ERROR:WaitForSingleObject() returned %lu, "
"expected WAIT_OBJECT_0\n",
ret );
- bThreadResult = FAIL;
+ bThreadResult_QueueUserAPC_test1 = FAIL;
goto done;
}
Trace( "ERROR:SleepEx() call returned %lu, "
"expected WAIT_IO_COMPLETION\n",
ret );
- bThreadResult = FAIL;
+ bThreadResult_QueueUserAPC_test1 = FAIL;
goto done;
}
/* everything passed here */
- bThreadResult = PASS;
+ bThreadResult_QueueUserAPC_test1 = PASS;
done:
/* signal the main thread that we're finished */
- if( ! SetEvent( hSyncEvent1 ) )
+ if( ! SetEvent( hSyncEvent1_QueueUserAPC_test1 ) )
{
Trace( "ERROR:%lu:SetEvent() call failed\n", GetLastError() );
- bThreadResult = FAIL;
+ bThreadResult_QueueUserAPC_test1 = FAIL;
}
/* return success or failure */
- return bThreadResult;
+ return bThreadResult_QueueUserAPC_test1;
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = QueueUserAPC
-Name = Test #1 for QueueUserAPC
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that APCs sent to a thread in an alertable state via
-=QueueUserAPC are executed in FIFO order. Also tests that the APC
-=function is executed within the context of the correct thread and
-=that the dwData parameter gets sent correctly.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_queueuserapc_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_queueuserapc_test2 coreclrpal)
-
-target_link_libraries(paltest_queueuserapc_test2
- ${COMMON_TEST_LIBRARIES}
-)
static BOOL bThreadResult = FAIL;
-VOID PALAPI APCFunc(ULONG_PTR dwParam)
+VOID PALAPI APCFunc_QueueUserAPC_test2(ULONG_PTR dwParam)
{
InAPC = TRUE;
}
-DWORD PALAPI SleeperProc(LPVOID lpParameter)
+DWORD PALAPI SleeperProc_QueueUserAPC_test2(LPVOID lpParameter)
{
DWORD ret;
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_QueueUserAPC_test2_paltest_queueuserapc_test2, "threading/QueueUserAPC/test2/paltest_queueuserapc_test2")
{
/* local variables */
HANDLE hThread = 0;
/* create a child thread */
hThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)SleeperProc,
+ (LPTHREAD_START_ROUTINE)SleeperProc_QueueUserAPC_test2,
0,
0,
&ChildThread);
}
/* queue a user APC on the child thread */
- ret = QueueUserAPC(APCFunc, hThread, 0);
+ ret = QueueUserAPC(APCFunc_QueueUserAPC_test2, hThread, 0);
if (ret == 0)
{
Trace( "ERROR:%lu:QueueUserAPC() call failed\n",
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = QueueUserAPC
-Name = Test #2 for QueueUserAPC
-TYPE = DEFAULT
-EXE1 = test2
-Description
-=Tests that APCs are not executed if a thread never enters an
-=alertable state after they are queued.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_queueuserapc_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_queueuserapc_test3 coreclrpal)
-
-target_link_libraries(paltest_queueuserapc_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_QueueUserAPC_test3_paltest_queueuserapc_test3, "threading/QueueUserAPC/test3/paltest_queueuserapc_test3")
{
int ret;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = QueueUserAPC
-Name = Test #3 for QueueUserAPC
-TYPE = DEFAULT
-EXE1 = test3
-Description
-=Tests how QueueUserAPC handles an invalid thread.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_queueuserapc_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_queueuserapc_test4 coreclrpal)
-
-target_link_libraries(paltest_queueuserapc_test4
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-static BOOL bAPCExecuted = FALSE;
+static BOOL bAPCExecuted_QueueUserAPC_test4 = FALSE;
-VOID PALAPI APCFunc( ULONG_PTR dwParam )
+VOID PALAPI APCFunc_QueueUserAPC_test4( ULONG_PTR dwParam )
{
- bAPCExecuted = TRUE;
+ bAPCExecuted_QueueUserAPC_test4 = TRUE;
}
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_QueueUserAPC_test4_paltest_queueuserapc_test4, "threading/QueueUserAPC/test4/paltest_queueuserapc_test4")
{
/* local variables */
/* get the current thread */
hThread = GetCurrentThread();
- ret = QueueUserAPC( APCFunc, hThread, 0 );
+ ret = QueueUserAPC( APCFunc_QueueUserAPC_test4, hThread, 0 );
if( ret == 0 )
{
Fail( "ERROR:%lu:QueueUserAPC call failed\n", GetLastError() );
}
/* check that the APC function was executed */
- if( bAPCExecuted == FALSE )
+ if( bAPCExecuted_QueueUserAPC_test4 == FALSE )
{
Fail( "ERROR:APC function was not executed\n" );
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = QueueUserAPC
-Name = Positive test for QueueUserAPC
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test to ensure proper operation of the QueueUserAPC()
-= API by trying to queue APC functions on the current
-= thread.
+++ /dev/null
-set(SOURCES
- test5.cpp
-)
-
-add_executable(paltest_queueuserapc_test5
- ${SOURCES}
-)
-
-add_dependencies(paltest_queueuserapc_test5 coreclrpal)
-
-target_link_libraries(paltest_queueuserapc_test5
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-static HANDLE hEvent = NULL;
-static BOOL bAPCExecuted = FALSE;
+static HANDLE hEvent_QueueUserAPC_test5 = NULL;
+static BOOL bAPCExecuted_QueueUserAPC_test5 = FALSE;
-VOID PALAPI APCFunc( ULONG_PTR dwParam )
+VOID PALAPI APCFunc_QueueUserAPC_test5( ULONG_PTR dwParam )
{
- bAPCExecuted = TRUE;
+ bAPCExecuted_QueueUserAPC_test5 = TRUE;
}
/**
*
* Dummy thread function for APC queuing.
*/
-DWORD PALAPI ThreadFunc( LPVOID param )
+DWORD PALAPI ThreadFunc_QueueUserAPC_test5( LPVOID param )
{
DWORD ret = 0;
/* alertable wait until the global event is signalled */
- ret = WaitForSingleObject( hEvent, INFINITE );
+ ret = WaitForSingleObject( hEvent_QueueUserAPC_test5, INFINITE );
if( ret != WAIT_OBJECT_0 )
{
Fail( "ERROR:WaitForSingleObject() returned %lu, "
}
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_QueueUserAPC_test5_paltest_queueuserapc_test5, "threading/QueueUserAPC/test5/paltest_queueuserapc_test5")
{
/* local variables */
}
/* create an event for the other thread to wait on */
- hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
- if( hEvent == NULL )
+ hEvent_QueueUserAPC_test5 = CreateEvent( NULL, TRUE, FALSE, NULL );
+ if( hEvent_QueueUserAPC_test5 == NULL )
{
Fail( "ERROR:%lu:CreateEvent() call failed\n", GetLastError() );
}
/* run another dummy thread to cause notification of the library */
hThread = CreateThread( NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE) ThreadFunc, /* thread function */
+ (LPTHREAD_START_ROUTINE) ThreadFunc_QueueUserAPC_test5, /* thread function */
(LPVOID) NULL, /* pass thread index as */
/* function argument */
CREATE_SUSPENDED, /* create suspended */
{
/* error creating thread */
Trace( "ERROR:%lu:CreateThread call failed\n", GetLastError() );
- if( ! CloseHandle( hEvent ) )
+ if( ! CloseHandle( hEvent_QueueUserAPC_test5 ) )
{
Trace( "ERROR:%lu:CloseHandle() call failed\n", GetLastError() );
}
}
/* queue our APC on the suspended thread */
- ret = QueueUserAPC( APCFunc, hThread, 0 );
+ ret = QueueUserAPC( APCFunc_QueueUserAPC_test5, hThread, 0 );
if( ret == 0 )
{
Fail( "ERROR:%lu:QueueUserAPC call failed\n", GetLastError() );
}
/* verify that the APC function was not executed */
- if( bAPCExecuted == TRUE )
+ if( bAPCExecuted_QueueUserAPC_test5 == TRUE )
{
Trace( "ERROR:APC function was executed for a suspended thread\n" );
goto cleanup;
}
/* check that the APC function was actually executed */
- if( bAPCExecuted == FALSE )
+ if( bAPCExecuted_QueueUserAPC_test5 == FALSE )
{
Trace( "ERROR:APC function was not executed\n" );
goto cleanup;
cleanup:
/* signal the event so the other thread will exit */
- if( ! SetEvent( hEvent ) )
+ if( ! SetEvent( hEvent_QueueUserAPC_test5 ) )
{
Trace( "ERROR:%lu:SetEvent() call failed\n", GetLastError() );
bResult = FAIL;
}
/* close the global event handle */
- if( ! CloseHandle( hEvent ) )
+ if( ! CloseHandle( hEvent_QueueUserAPC_test5 ) )
{
Trace( "ERROR:%lu:CloseHandle() call failed\n", GetLastError() );
bResult = FAIL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = QueueUserAPC
-Name = Positive test for QueueUserAPC
-TYPE = DEFAULT
-EXE1 = test5
-Description
-= Test to ensure proper operation of the QueueUserAPC()
-= API by trying to queue and activate APC functions on
-= a thread that was created suspended, prior to resuming
-= it. We're verifying the following behavior:
-=
-= "If an application queues an APC before the thread begins
-= running, the thread begins by calling the APC function.
-= After the thread calls an APC function, it calls the APC
-= functions for all APCs in its APC queue."
+++ /dev/null
-set(SOURCES
- test6.cpp
-)
-
-add_executable(paltest_queueuserapc_test6
- ${SOURCES}
-)
-
-add_dependencies(paltest_queueuserapc_test6 coreclrpal)
-
-target_link_libraries(paltest_queueuserapc_test6
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-static BOOL bAPCExecuted = FALSE;
+static BOOL bAPCExecuted_QueueUserAPC_test6 = FALSE;
-VOID PALAPI APCFunc( ULONG_PTR dwParam )
+VOID PALAPI APCFunc_QueueUserAPC_test6( ULONG_PTR dwParam )
{
- bAPCExecuted = TRUE;
+ bAPCExecuted_QueueUserAPC_test6 = TRUE;
}
/**
*
* Dummy thread function for APC queuing.
*/
-DWORD PALAPI ThreadFunc( LPVOID param )
+DWORD PALAPI ThreadFunc_QueueUserAPC_test6( LPVOID param )
{
int i;
}
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_QueueUserAPC_test6_paltest_queueuserapc_test6, "threading/QueueUserAPC/test6/paltest_queueuserapc_test6")
{
/* local variables */
/* run another dummy thread to cause notification of the library */
hThread = CreateThread( NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE) ThreadFunc, /* thread function */
+ (LPTHREAD_START_ROUTINE) ThreadFunc_QueueUserAPC_test6, /* thread function */
(LPVOID) NULL, /* pass thread index as */
/* function argument */
CREATE_SUSPENDED, /* create suspended */
}
/* queue our APC on the finished thread */
- ret = QueueUserAPC( APCFunc, hThread, 0 );
+ ret = QueueUserAPC( APCFunc_QueueUserAPC_test6, hThread, 0 );
if( ret != 0 )
{
Trace( "ERROR:QueueUserAPC call succeeded on a terminated thread\n" );
}
/* dummy check that the APC function wasn't actually executed */
- if( bAPCExecuted != FALSE )
+ if( bAPCExecuted_QueueUserAPC_test6 != FALSE )
{
Fail( "ERROR:APC function was executed\n" );
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = QueueUserAPC
-Name = Negative test for QueueUserAPC
-TYPE = DEFAULT
-EXE1 = test6
-Description
-= Test to ensure proper operation of the QueueUserAPC()
-= API by trying to queue APC functions on a thread that
-= has already terminated.
+++ /dev/null
-set(SOURCES
- test7.cpp
-)
-
-add_executable(paltest_queueuserapc_test7
- ${SOURCES}
-)
-
-add_dependencies(paltest_queueuserapc_test7 coreclrpal)
-
-target_link_libraries(paltest_queueuserapc_test7
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-static HANDLE hSyncEvent = NULL;
-static HANDLE hTestEvent = NULL;
-static int nAPCExecuted = 0;
-static BOOL bThreadResult = FALSE;
+static HANDLE hSyncEvent_QueueUserAPC_test7 = NULL;
+static HANDLE hTestEvent_QueueUserAPC_test7 = NULL;
+static int nAPCExecuted_QueueUserAPC_test7 = 0;
+static BOOL bThreadResult_QueueUserAPC_test7 = FALSE;
-VOID PALAPI APCFunc( ULONG_PTR dwParam )
+VOID PALAPI APCFunc_QueueUserAPC_test7( ULONG_PTR dwParam )
{
- ++nAPCExecuted;
+ ++nAPCExecuted_QueueUserAPC_test7;
}
/**
*
* Dummy thread function for APC queuing.
*/
-DWORD PALAPI ThreadFunc( LPVOID param )
+DWORD PALAPI ThreadFunc_QueueUserAPC_test7( LPVOID param )
{
DWORD ret = 0;
/* pessimism */
- bThreadResult = FALSE;
+ bThreadResult_QueueUserAPC_test7 = FALSE;
/* set the sync event to notify the main thread */
- if( ! SetEvent( hSyncEvent ) )
+ if( ! SetEvent( hSyncEvent_QueueUserAPC_test7 ) )
{
Trace( "ERROR:%lu:SetEvent() call failed\n", GetLastError() );
goto done;
}
/* wait until the test event is signalled */
- ret = WaitForSingleObject( hTestEvent, INFINITE );
+ ret = WaitForSingleObject( hTestEvent_QueueUserAPC_test7, INFINITE );
if( ret != WAIT_OBJECT_0 )
{
Trace( "ERROR:WaitForSingleObject() returned %lu, "
/* now do an alertable wait on the same event, which is now
in an unsignalled state */
- ret = WaitForMultipleObjectsEx( 1, &hTestEvent, TRUE, 2000, TRUE );
+ ret = WaitForMultipleObjectsEx( 1, &hTestEvent_QueueUserAPC_test7, TRUE, 2000, TRUE );
/* verify that we got a WAIT_IO_COMPLETION result */
if( ret != WAIT_IO_COMPLETION )
}
/* set the event again */
- if( ! SetEvent( hTestEvent ) )
+ if( ! SetEvent( hTestEvent_QueueUserAPC_test7 ) )
{
Trace( "ERROR:%lu:SetEvent() call failed\n", GetLastError() );
goto done;
}
/* do a non-alertable wait on the same event */
- ret = WaitForMultipleObjectsEx( 1, &hTestEvent, TRUE, INFINITE, FALSE );
+ ret = WaitForMultipleObjectsEx( 1, &hTestEvent_QueueUserAPC_test7, TRUE, INFINITE, FALSE );
/* verify that we got a WAIT_OBJECT_0 result */
if( ret != WAIT_OBJECT_0 )
}
/* success at this point */
- bThreadResult = TRUE;
+ bThreadResult_QueueUserAPC_test7 = TRUE;
done:
- return bThreadResult;
+ return bThreadResult_QueueUserAPC_test7;
}
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_QueueUserAPC_test7_paltest_queueuserapc_test7, "threading/QueueUserAPC/test7/paltest_queueuserapc_test7")
{
/* local variables */
}
/* create an auto-reset event for the other thread to wait on */
- hTestEvent = CreateEvent( NULL, FALSE, FALSE, NULL );
- if( hTestEvent == NULL )
+ hTestEvent_QueueUserAPC_test7 = CreateEvent( NULL, FALSE, FALSE, NULL );
+ if( hTestEvent_QueueUserAPC_test7 == NULL )
{
Fail( "ERROR:%lu:CreateEvent() call failed\n", GetLastError() );
}
/* create an auto-reset event for synchronization */
- hSyncEvent = CreateEvent( NULL, FALSE, FALSE, NULL );
- if( hSyncEvent == NULL )
+ hSyncEvent_QueueUserAPC_test7 = CreateEvent( NULL, FALSE, FALSE, NULL );
+ if( hSyncEvent_QueueUserAPC_test7 == NULL )
{
Trace( "ERROR:%lu:CreateEvent() call failed\n", GetLastError() );
- if( ! CloseHandle( hTestEvent ) )
+ if( ! CloseHandle( hTestEvent_QueueUserAPC_test7 ) )
{
Trace( "ERROR:%lu:CreateEvent() call failed\n", GetLastError() );
}
/* run another dummy thread to cause notification of the library */
hThread = CreateThread( NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE) ThreadFunc, /* thread function */
+ (LPTHREAD_START_ROUTINE) ThreadFunc_QueueUserAPC_test7, /* thread function */
(LPVOID) NULL, /* pass thread index as */
/* function argument */
CREATE_SUSPENDED, /* create suspended */
{
/* error creating thread */
Trace( "ERROR:%lu:CreateThread call failed\n", GetLastError() );
- if( ! CloseHandle( hTestEvent ) )
+ if( ! CloseHandle( hTestEvent_QueueUserAPC_test7 ) )
{
Trace( "ERROR:%lu:CloseHandle() call failed\n", GetLastError() );
}
ResumeThread( hThread );
/* wait until the other thread is ready to proceed */
- ret = WaitForSingleObject( hSyncEvent, 10000 );
+ ret = WaitForSingleObject( hSyncEvent_QueueUserAPC_test7, 10000 );
if( ret != WAIT_OBJECT_0 )
{
Trace( "ERROR:WaitForSingleObject returned %lu, "
/* now queue our APC on the test thread */
- ret = QueueUserAPC( APCFunc, hThread, 0 );
+ ret = QueueUserAPC( APCFunc_QueueUserAPC_test7, hThread, 0 );
if( ret == 0 )
{
Trace( "ERROR:%lu:QueueUserAPC call failed\n", GetLastError() );
}
/* signal the test event so the other thread will proceed */
- if( ! SetEvent( hTestEvent ) )
+ if( ! SetEvent( hTestEvent_QueueUserAPC_test7 ) )
{
Trace( "ERROR:%lu:SetEvent() call failed\n", GetLastError() );
goto cleanup;
}
/* check the result of the other thread */
- if( bThreadResult == FALSE )
+ if( bThreadResult_QueueUserAPC_test7 == FALSE )
{
goto cleanup;
}
/* check that the APC function was actually executed exactly one time */
- if( nAPCExecuted != 1 )
+ if( nAPCExecuted_QueueUserAPC_test7 != 1 )
{
Trace( "ERROR:APC function was executed %d times, "
- "expected once\n", nAPCExecuted );
+ "expected once\n", nAPCExecuted_QueueUserAPC_test7 );
goto cleanup;
}
cleanup:
/* close the global event handles */
- if( ! CloseHandle( hTestEvent ) )
+ if( ! CloseHandle( hTestEvent_QueueUserAPC_test7 ) )
{
Trace( "ERROR:%lu:CloseHandle() call failed\n", GetLastError() );
bResult = FAIL;
}
- if( ! CloseHandle( hSyncEvent ) )
+ if( ! CloseHandle( hSyncEvent_QueueUserAPC_test7 ) )
{
Trace( "ERROR:%lu:CloseHandle() call failed\n", GetLastError() );
bResult = FAIL;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = QueueUserAPC
-Name = Positive test for QueueUserAPC
-TYPE = DEFAULT
-EXE1 = test7
-Description
-= Test to ensure proper operation of the QueueUserAPC()
-= API by trying to queue an APC function on a thread and
-= activating it with WaitForMultipleObjectsEx.
+++ /dev/null
-add_subdirectory(test3)
-
+++ /dev/null
-set(SOURCES
- ReleaseMutex.cpp
-)
-
-add_executable(paltest_releasemutex_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_releasemutex_test3 coreclrpal)
-
-target_link_libraries(paltest_releasemutex_test3
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-DWORD dwTestResult; /* global for test result */
+DWORD dwTestResult_ReleaseMutex_test3; /* global for test result */
-DWORD dwThreadId; /* consumer thread identifier */
+DWORD dwThreadId_ReleaseMutex_test3; /* consumer thread identifier */
-HANDLE hMutex; /* handle to mutex */
+HANDLE hMutex_ReleaseMutex_test3; /* handle to mutex */
-HANDLE hThread; /* handle to thread */
+HANDLE hThread_ReleaseMutex_test3; /* handle to thread */
/*
* Thread function.
*/
DWORD
PALAPI
-ThreadFunction( LPVOID lpNoArg )
+ThreadFunction_ReleaseMutex_test3( LPVOID lpNoArg )
{
- dwTestResult = ReleaseMutex(hMutex);
+ dwTestResult_ReleaseMutex_test3 = ReleaseMutex(hMutex_ReleaseMutex_test3);
return 0;
}
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_ReleaseMutex_test3_paltest_releasemutex_test3, "threading/ReleaseMutex/test3/paltest_releasemutex_test3")
{
if(0 != (PAL_Initialize(argc, argv)))
/*
* set dwTestResult so test fails even if ReleaseMutex is not called
*/
- dwTestResult = 1;
+ dwTestResult_ReleaseMutex_test3 = 1;
/*
* Create mutex
*/
- hMutex = CreateMutexW (
+ hMutex_ReleaseMutex_test3 = CreateMutexW (
NULL,
TRUE,
NULL);
- if ( NULL == hMutex )
+ if ( NULL == hMutex_ReleaseMutex_test3 )
{
Fail ( "hMutex = CreateMutex () - returned NULL\n"
"Failing Test.\nGetLastError returned %d\n", GetLastError());
/*
* Create ThreadFunction
*/
- hThread = CreateThread(
+ hThread_ReleaseMutex_test3 = CreateThread(
NULL,
0,
- ThreadFunction,
+ ThreadFunction_ReleaseMutex_test3,
NULL,
0,
- &dwThreadId);
+ &dwThreadId_ReleaseMutex_test3);
- if ( NULL == hThread )
+ if ( NULL == hThread_ReleaseMutex_test3 )
{
Fail ( "CreateThread() returned NULL. Failing test.\n"
/*
* Wait for ThreadFunction to complete
*/
- WaitForSingleObject (hThread, INFINITE);
+ WaitForSingleObject (hThread_ReleaseMutex_test3, INFINITE);
- if (dwTestResult)
+ if (dwTestResult_ReleaseMutex_test3)
{
Fail ("ReleaseMutex() test was expected to return 0.\n"
- "It returned %d. Failing test.\n", dwTestResult );
+ "It returned %d. Failing test.\n", dwTestResult_ReleaseMutex_test3 );
}
Trace ("ReleaseMutex() test returned 0.\nTest passed.\n");
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ReleaseMutex
-Name = Positive Test for ReleaseMutex
-TYPE = DEFAULT
-EXE1 = releasemutex
-Description
-= Calls ReleaseMutex from a thread which should not have ownership of the
-= mutex. If ReleaseMutex fails correctly this test will succeed.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_resetevent_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_resetevent_test1 coreclrpal)
-
-target_link_libraries(paltest_resetevent_test1
- ${COMMON_TEST_LIBRARIES}
-)
return bRet;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_ResetEvent_test1_paltest_resetevent_test1, "threading/ResetEvent/test1/paltest_resetevent_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ResetEvent
-Name = Positive Test for ResetEvent
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for ResetEvent. Create an event with an intial
-= state signaled. Then reset that signal, and check to see that
-= the event is now not signaled.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_resetevent_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_resetevent_test2 coreclrpal)
-
-target_link_libraries(paltest_resetevent_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_ResetEvent_test2_paltest_resetevent_test2, "threading/ResetEvent/test2/paltest_resetevent_test2")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ResetEvent
-Name = Positive test for ResetEvent
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure proper operation of the ResetEvent()
-= API by calling it on an event handle that's already
-= unsignalled.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_resetevent_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_resetevent_test3 coreclrpal)
-
-target_link_libraries(paltest_resetevent_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_ResetEvent_test3_paltest_resetevent_test3, "threading/ResetEvent/test3/paltest_resetevent_test3")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ResetEvent
-Name = Negative test for ResetEvent
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Test to ensure proper operation of the ResetEvent()
-= API by calling it on an event handle that's been
-= closed. We expect it to return an appropriate error
-= result.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_resetevent_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_resetevent_test4 coreclrpal)
-
-target_link_libraries(paltest_resetevent_test4
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_ResetEvent_test4_paltest_resetevent_test4, "threading/ResetEvent/test4/paltest_resetevent_test4")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ResetEvent
-Name = Positive test for ResetEvent
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test to ensure proper operation of the ResetEvent()
-= API by calling it on an event handle that's the
-= result of a DuplicateHandle() call on another event
-= handle.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_resumethread_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_resumethread_test1 coreclrpal)
-
-target_link_libraries(paltest_resumethread_test1
- ${COMMON_TEST_LIBRARIES}
-)
return bRet;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_ResumeThread_test1_paltest_resumethread_test1, "threading/ResumeThread/test1/paltest_resumethread_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ResumeThread
-Name = Positive Test for ResumeThread
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for ResumeThread. Create a suspended Thread.
-= First, ensure that it is indeed suspended. Then call resumethread
-= and check to ensure that the function has now run.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_seterrormode_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_seterrormode_test1 coreclrpal)
-
-target_link_libraries(paltest_seterrormode_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_SetErrorMode_test1_paltest_seterrormode_test1, "threading/SetErrorMode/test1/paltest_seterrormode_test1")
{
DWORD dErrorReturn;
UINT dErrorModes[] = {SEM_NOOPENFILEERRORBOX, SEM_FAILCRITICALERRORS, 0};
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = Threading
-Function = SetErrorMode
-Name = Positive Test for SetErrorMode
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Tests the PAL implementation of the SetErrorMode function.
-= This test will set the error mode and then read the error
-= set with GetLastError().
-
-
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_setevent_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_setevent_test1 coreclrpal)
-
-target_link_libraries(paltest_setevent_test1
- ${COMMON_TEST_LIBRARIES}
-)
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_SetEvent_test1_paltest_setevent_test1, "threading/SetEvent/test1/paltest_setevent_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = SetEvent
-Name = Positive Test for SetEvent
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Test for SetEvent. Create an Event and then set
-=this event, checking the return value. Ensure that it returns
-=positive.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_setevent_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_setevent_test2 coreclrpal)
-
-target_link_libraries(paltest_setevent_test2
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_SetEvent_test2_paltest_setevent_test2, "threading/SetEvent/test2/paltest_setevent_test2")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = SetEvent
-Name = Positive test for SetEvent
-TYPE = DEFAULT
-EXE1 = test2
-Description
-= Test to ensure proper operation of the SetEvent()
-= API by calling it on an event handle that's already set.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_setevent_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_setevent_test3 coreclrpal)
-
-target_link_libraries(paltest_setevent_test3
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_SetEvent_test3_paltest_setevent_test3, "threading/SetEvent/test3/paltest_setevent_test3")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = SetEvent
-Name = Negative test for SetEvent
-TYPE = DEFAULT
-EXE1 = test3
-Description
-= Test to ensure proper operation of the SetEvent()
-= API by calling it on an event handle that's been
-= closed. We expect it to return an appropriate error
-= result.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_setevent_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_setevent_test4 coreclrpal)
-
-target_link_libraries(paltest_setevent_test4
- ${COMMON_TEST_LIBRARIES}
-)
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_SetEvent_test4_paltest_setevent_test4, "threading/SetEvent/test4/paltest_setevent_test4")
{
/* local variables */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = SetEvent
-Name = Positive test for SetEvent
-TYPE = DEFAULT
-EXE1 = test4
-Description
-= Test to ensure proper operation of the SetEvent()
-= API by calling it on an event handle that's the
-= result of a DuplicateHandle() call on another event
-= handle.
+++ /dev/null
-set(SOURCES
- SignalObjectAndWaitTest.cpp
-)
-
-add_executable(paltest_signalobjectandwaittest
- ${SOURCES}
-)
-
-add_dependencies(paltest_signalobjectandwaittest coreclrpal)
-
-target_link_libraries(paltest_signalobjectandwaittest
- ${COMMON_TEST_LIBRARIES}
-)
}
}
-int _cdecl main(int argc, char **argv)
+PALTEST(threading_SignalObjectAndWait_paltest_signalobjectandwaittest, "threading/SignalObjectAndWait/paltest_signalobjectandwaittest")
{
if (PAL_Initialize(argc, argv) != 0)
{
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- Sleep.cpp
-)
-
-add_executable(paltest_sleep_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sleep_test1 coreclrpal)
-
-target_link_libraries(paltest_sleep_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-DWORD SleepTimes[] =
+PALTEST(threading_Sleep_test1_paltest_sleep_test1, "threading/Sleep/test1/paltest_sleep_test1")
{
- 0,
- 50,
- 100,
- 500,
- 2000
-};
+ DWORD SleepTimes[] =
+ {
+ 0,
+ 50,
+ 100,
+ 500,
+ 2000
+ };
-/* Milliseconds of error which are acceptable Function execution time, etc. */
-DWORD AcceptableTimeError = 150;
+ /* Milliseconds of error which are acceptable Function execution time, etc. */
+ DWORD AcceptableTimeError = 150;
-int __cdecl main( int argc, char **argv )
-{
UINT64 OldTimeStamp;
UINT64 NewTimeStamp;
DWORD MaxDelta;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = Sleep
-Name = Positive Test for Sleep
-TYPE = DEFAULT
-EXE1 = sleep
-Description
-= Test to see if the Sleep function stops the thread from executing for the
-= specified amount of time.
+++ /dev/null
-set(SOURCES
- sleep.cpp
-)
-
-add_executable(paltest_sleep_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_sleep_test2 coreclrpal)
-
-target_link_libraries(paltest_sleep_test2
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-/*
- * times in 10^(-3) seconds
- */
-
-DWORD SleepTimes[] =
+PALTEST(threading_Sleep_test2_paltest_sleep_test2, "threading/Sleep/test2/paltest_sleep_test2")
{
- 60000,
- 300000,
- 1800000,
- 3200000
-};
+ /*
+ * times in 10^(-3) seconds
+ */
+
+ DWORD SleepTimes[] =
+ {
+ 60000,
+ 300000,
+ 1800000,
+ 3200000
+ };
-/* Milliseconds of error which are acceptable Function execution time, etc. */
-DWORD AcceptableTimeError = 150;
+ /* Milliseconds of error which are acceptable Function execution time, etc. */
+ DWORD AcceptableTimeError = 150;
-int __cdecl main( int argc, char **argv )
-{
UINT64 OldTimeStamp;
UINT64 NewTimeStamp;
DWORD MaxDelta;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = Sleep
-Name = Positive Test for Sleep
-TYPE = DEFAULT
-EXE1 = sleep
-Description
-= Test to see if the Sleep function stops the thread from executing for the
-= specified amount of time.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_sleepex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_sleepex_test1 coreclrpal)
-
-target_link_libraries(paltest_sleepex_test1
- ${COMMON_TEST_LIBRARIES}
-)
BOOL Alertable;
} testCase;
-testCase testCases[] =
-{
- {0, FALSE},
- {50, FALSE},
- {100, FALSE},
- {500, FALSE},
- {2000, FALSE},
-
- {0, TRUE},
- {50, TRUE},
- {100, TRUE},
- {500, TRUE},
- {2000, TRUE},
-};
-
-/* Milliseconds of error which are acceptable Function execution time, etc. */
-DWORD AcceptableTimeError = 150;
-
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_SleepEx_test1_paltest_sleepex_test1, "threading/SleepEx/test1/paltest_sleepex_test1")
{
+ /* Milliseconds of error which are acceptable Function execution time, etc. */
+ DWORD AcceptableTimeError = 150;
+
+ testCase testCases[] =
+ {
+ {0, FALSE},
+ {50, FALSE},
+ {100, FALSE},
+ {500, FALSE},
+ {2000, FALSE},
+
+ {0, TRUE},
+ {50, TRUE},
+ {100, TRUE},
+ {500, TRUE},
+ {2000, TRUE},
+ };
+
UINT64 OldTimeStamp;
UINT64 NewTimeStamp;
DWORD MaxDelta;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = SleepEx
-Name = Test #1 for SleepEx
-TYPE = DEFAULT
-EXE1 = test1
-Description
-=Tests that SleepEx correctly sleeps for a given amount of time,
-=regardless of the alertable flag.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_sleepex_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_sleepex_test2 coreclrpal)
-
-target_link_libraries(paltest_sleepex_test2
- ${COMMON_TEST_LIBRARIES}
-)
const int Iterations = 5;
-void RunTest(BOOL AlertThread);
-VOID PALAPI APCFunc(ULONG_PTR dwParam);
-DWORD PALAPI SleeperProc(LPVOID lpParameter);
+void RunTest_SleepEx_test2(BOOL AlertThread);
+VOID PALAPI APCFunc_SleepEx_test2(ULONG_PTR dwParam);
+DWORD PALAPI SleeperProc_SleepEx_test2(LPVOID lpParameter);
DWORD ThreadSleepDelta;
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_SleepEx_test2_paltest_sleepex_test2, "threading/SleepEx/test2/paltest_sleepex_test2")
{
int i;
DWORD dwAvgDelta;
dwAvgDelta = 0;
for (i=0;i<Iterations;i++)
{
- RunTest(TRUE);
+ RunTest_SleepEx_test2(TRUE);
dwAvgDelta += ThreadSleepDelta - InterruptTime;
}
dwAvgDelta /= Iterations;
dwAvgDelta = 0;
for (i=0;i<Iterations;i++)
{
- RunTest(FALSE);
+ RunTest_SleepEx_test2(FALSE);
dwAvgDelta += ThreadSleepDelta - ChildThreadSleepTime;
}
dwAvgDelta /= Iterations;
return PASS;
}
-void RunTest(BOOL AlertThread)
+void RunTest_SleepEx_test2(BOOL AlertThread)
{
HANDLE hThread = 0;
DWORD dwThreadId = 0;
hThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)SleeperProc,
+ (LPTHREAD_START_ROUTINE)SleeperProc_SleepEx_test2,
(LPVOID) AlertThread,
0,
&dwThreadId);
Fail("The creating thread did not sleep!\n");
}
- ret = QueueUserAPC(APCFunc, hThread, 0);
+ ret = QueueUserAPC(APCFunc_SleepEx_test2, hThread, 0);
if (ret == 0)
{
Fail("QueueUserAPC failed! GetLastError returned %d\n", GetLastError());
}
/* Function doesn't do anything, just needed to interrupt SleepEx */
-VOID PALAPI APCFunc(ULONG_PTR dwParam)
+VOID PALAPI APCFunc_SleepEx_test2(ULONG_PTR dwParam)
{
}
/* Entry Point for child thread. */
-DWORD PALAPI SleeperProc(LPVOID lpParameter)
+DWORD PALAPI SleeperProc_SleepEx_test2(LPVOID lpParameter)
{
UINT64 OldTimeStamp;
UINT64 NewTimeStamp;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = SleepEx
-Name = Test #2 for SleepEx
-TYPE = DEFAULT
-EXE1 = test2
-Description
-=Tests that a child thread in the middle of a SleepEx call will be
-=interrupted by QueueUserAPC if the alert flag was set.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_switchtothread_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_switchtothread_test1 coreclrpal)
-
-target_link_libraries(paltest_switchtothread_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define THREAD_COUNT 10
#define REPEAT_COUNT 1000
#define TIMEOUT 60000
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_switchtothread_test1(LPVOID lpParam);
/**
* main
*
* executable entry point
*/
-INT __cdecl main( INT argc, CHAR **argv )
+PALTEST(threading_SwitchToThread_test1_paltest_switchtothread_test1, "threading/SwitchToThread/test1/paltest_switchtothread_test1")
{
DWORD dwParam;
HANDLE hThread[THREAD_COUNT];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_switchtothread_test1,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_switchtothread_test1 (LPVOID lpParam)
{
int i = 0;
int Id=(int)(SIZE_T)lpParam;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = SwitchToThread
-Name = Test for SwitchToThread
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Purpose: Test to ensure SwitchToThread is
-= working properly on supported platforms
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- TerminateProcess.cpp
-)
-
-add_executable(paltest_terminateprocess_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_terminateprocess_test1 coreclrpal)
-
-target_link_libraries(paltest_terminateprocess_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-INT __cdecl main( int argc, char **argv )
+PALTEST(threading_TerminateProcess_test1_paltest_terminateprocess_test1, "threading/TerminateProcess/test1/paltest_terminateprocess_test1")
{
HANDLE hProcess;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = TerminateProcess
-Name = Positive Test for TerminateProcess
-TYPE = DEFAULT
-EXE1 = terminateprocess
-Description
-= Test to see if the function TerminateProcess terminates the currently
-= running process and passes the appropriate value through uExitCode.
-
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- ThreadPriority.cpp
-)
-
-add_executable(paltest_threadpriority_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_threadpriority_test1 coreclrpal)
-
-target_link_libraries(paltest_threadpriority_test1
- ${COMMON_TEST_LIBRARIES}
-)
*
* executable entry point
*/
-INT __cdecl main( INT argc, CHAR **argv )
+PALTEST(threading_ThreadPriority_test1_paltest_threadpriority_test1, "threading/ThreadPriority/test1/paltest_threadpriority_test1")
{
/* PAL initialization */
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ThreadPriority
-Name = Test for GetThreadPriority and SetThreadPriority
-TYPE = DEFAULT
-EXE1 = threadpriority
-Description
-= Test to ensure proper operation of the GetThreadPriority
-= and SetThreadPriority APIs. The test launches several threads
-= of varying priorities, and verifies that the correct priority
-= is reported for each. It also verifies that the processing
-= time for each test thread is consistent with the priority
-= that's set for it.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_waitformultipleobjects_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjects_test1 coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjects_test1
- ${COMMON_TEST_LIBRARIES}
-)
return bRet;
}
-BOOL WaitMultipleDuplicateHandleTest()
+BOOL WaitMultipleDuplicateHandleTest_WFMO_test1()
{
BOOL testResult = TRUE;
const HANDLE eventHandle = CreateEvent(NULL, TRUE, TRUE, NULL);
return testResult;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForMultipleObjects_test1_paltest_waitformultipleobjects_test1, "threading/WaitForMultipleObjects/test1/paltest_waitformultipleobjects_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
Fail ("Test failed\n");
}
- if (!WaitMultipleDuplicateHandleTest())
+ if (!WaitMultipleDuplicateHandleTest_WFMO_test1())
{
Fail("Test failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = WaitForMultipleObjects
-Name = Positive Test for WaitForMultipleObjects
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for WaitForMultipleObjects. Call the function
-= on an array of 4 events, and ensure that it returns correct
-= results when we do so.
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(test2)
-add_subdirectory(test3)
-add_subdirectory(test4)
-add_subdirectory(test5)
-add_subdirectory(test6)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test1 coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test1
- ${COMMON_TEST_LIBRARIES}
-)
return bRet;
}
-BOOL WaitMultipleDuplicateHandleTest()
+BOOL WaitMultipleDuplicateHandleTest_WFMOEx_test1()
{
BOOL testResult = TRUE;
const HANDLE eventHandle = CreateEvent(NULL, TRUE, TRUE, NULL);
return testResult;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForMultipleObjectsEx_test1_paltest_waitformultipleobjectsex_test1, "threading/WaitForMultipleObjectsEx/test1/paltest_waitformultipleobjectsex_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
Fail ("Test failed\n");
}
- if (!WaitMultipleDuplicateHandleTest())
+ if (!WaitMultipleDuplicateHandleTest_WFMOEx_test1())
{
Fail("Test failed\n");
}
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = WaitForMultipleObjectsEx
-Name = Test #1 for WaitForMultipleObjectsEx
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for WaitForMultipleObjectsEx. Call the function
-= on an array of 4 events, and ensure that it returns correct
-= results when we do so.
+++ /dev/null
-set(SOURCES
- test2.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test2
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test2 coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test2
- ${COMMON_TEST_LIBRARIES}
-)
#define TOLERANCE 10
-void RunTest(BOOL AlertThread);
-VOID PALAPI APCFunc(ULONG_PTR dwParam);
-DWORD PALAPI WaiterProc(LPVOID lpParameter);
+void RunTest_WFMO_test2(BOOL AlertThread);
+VOID PALAPI APCFunc_WFMO_test2(ULONG_PTR dwParam);
+DWORD PALAPI WaiterProc_WFMO_test2(LPVOID lpParameter);
-DWORD ThreadWaitDelta;
+DWORD ThreadWaitDelta_WFMO_test2;
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_WaitForMultipleObjectsEx_test2_paltest_waitformultipleobjectsex_test2, "threading/WaitForMultipleObjectsEx/test2/paltest_waitformultipleobjectsex_test2")
{
DWORD delta = 0;
* Check that Queueing an APC in the middle of a wait does interrupt
* it, if it's in an alertable state.
*/
- RunTest(TRUE);
+ RunTest_WFMO_test2(TRUE);
// Make sure that the wait returns in time greater than interrupt and less than
// wait timeout
- if (
- ((ThreadWaitDelta >= ChildThreadWaitTime) && (ThreadWaitDelta - ChildThreadWaitTime) > TOLERANCE)
- || (( ThreadWaitDelta < InterruptTime) && (ThreadWaitDelta - InterruptTime) > TOLERANCE)
+ if (
+ ((ThreadWaitDelta_WFMO_test2 >= ChildThreadWaitTime) && (ThreadWaitDelta_WFMO_test2 - ChildThreadWaitTime) > TOLERANCE)
+ || (( ThreadWaitDelta_WFMO_test2 < InterruptTime) && (ThreadWaitDelta_WFMO_test2 - InterruptTime) > TOLERANCE)
)
{
Fail("Expected thread to wait for %d ms (and get interrupted).\n"
"Interrupt Time: %d ms, ThreadWaitDelta %u\n",
- ChildThreadWaitTime, InterruptTime, ThreadWaitDelta);
+ ChildThreadWaitTime, InterruptTime, ThreadWaitDelta_WFMO_test2);
}
/*
* Check that Queueing an APC in the middle of a wait does NOT interrupt
* it, if it is not in an alertable state.
*/
- RunTest(FALSE);
+ RunTest_WFMO_test2(FALSE);
// Make sure that time taken for thread to return from wait is more than interrupt
// and also not less than the complete child thread wait time
- delta = ThreadWaitDelta - ChildThreadWaitTime;
- if( (ThreadWaitDelta < ChildThreadWaitTime) && ( delta > TOLERANCE) )
+ delta = ThreadWaitDelta_WFMO_test2 - ChildThreadWaitTime;
+ if( (ThreadWaitDelta_WFMO_test2 < ChildThreadWaitTime) && ( delta > TOLERANCE) )
{
Fail("Expected thread to wait for %d ms (and not get interrupted).\n"
"Interrupt Time: %d ms, ThreadWaitDelta %u\n",
- ChildThreadWaitTime, InterruptTime, ThreadWaitDelta);
+ ChildThreadWaitTime, InterruptTime, ThreadWaitDelta_WFMO_test2);
}
return PASS;
}
-void RunTest(BOOL AlertThread)
+void RunTest_WFMO_test2(BOOL AlertThread)
{
HANDLE hThread = 0;
DWORD dwThreadId = 0;
hThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)WaiterProc,
+ (LPTHREAD_START_ROUTINE)WaiterProc_WFMO_test2,
(LPVOID) AlertThread,
0,
&dwThreadId);
Sleep(InterruptTime);
- ret = QueueUserAPC(APCFunc, hThread, 0);
+ ret = QueueUserAPC(APCFunc_WFMO_test2, hThread, 0);
if (ret == 0)
{
Fail("QueueUserAPC failed! GetLastError returned %d\n",
}
/* Function doesn't do anything, just needed to interrupt the wait*/
-VOID PALAPI APCFunc(ULONG_PTR dwParam)
+VOID PALAPI APCFunc_WFMO_test2(ULONG_PTR dwParam)
{
}
/* Entry Point for child thread. */
-DWORD PALAPI WaiterProc(LPVOID lpParameter)
+DWORD PALAPI WaiterProc_WFMO_test2(LPVOID lpParameter)
{
HANDLE Semaphore;
UINT64 OldTimeStamp;
"Expected return of WAIT_TIMEOUT, got %d.\n", ret);
}
- ThreadWaitDelta = NewTimeStamp - OldTimeStamp;
+ ThreadWaitDelta_WFMO_test2 = NewTimeStamp - OldTimeStamp;
ret = CloseHandle(Semaphore);
if (!ret)
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = WaitForMultipleObjectsEx
-Name = Test #2 for WaitForMultipleObjectsEx
-TYPE = DEFAULT
-EXE1 = test2
-Description
-=Tests that a child thread in the middle of a
-=WaitForMultipleObjectsEx call will be interrupted by QueueUserAPC
-=if the alert flag was set.
+++ /dev/null
-set(SOURCES
- test3.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test3
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test3 coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test3
- ${COMMON_TEST_LIBRARIES}
-)
DWORD PALAPI AcquiringProc(LPVOID lpParameter);
-int __cdecl main( int argc, char **argv)
+PALTEST(threading_WaitForMultipleObjectsEx_test3_paltest_waitformultipleobjectsex_test3, "threading/WaitForMultipleObjectsEx/test3/paltest_waitformultipleobjectsex_test3")
{
HANDLE Mutex;
HANDLE hThread = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = WaitForMultipleObjectsEx
-Name = Test #3 for WaitForMultipleObjectsEx
-TYPE = DEFAULT
-EXE1 = test3
-Description
-=Tests that waiting on an open mutex will a return
-=WAIT_OBJECT_0. Does this by creating a child thread that
-=acquires the mutex, releases it, and exits.
+++ /dev/null
-set(SOURCES
- test4.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test4
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test4 coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test4
- ${COMMON_TEST_LIBRARIES}
-)
DWORD PALAPI AbandoningProc(LPVOID lpParameter);
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_WaitForMultipleObjectsEx_test4_paltest_waitformultipleobjectsex_test4, "threading/WaitForMultipleObjectsEx/test4/paltest_waitformultipleobjectsex_test4")
{
HANDLE Mutex;
HANDLE hThread = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = WaitForMultipleObjectsEx
-Name = Test #4 for WaitForMultipleObjectsEx
-TYPE = DEFAULT
-EXE1 = test4
-Description
-=Tests that waiting on an abandonded mutex will a return
-=WAIT_ABANDONED_0. Does this by creating a child thread that
-=acquires the mutex and exits.
+++ /dev/null
-set(TESTSOURCES
- test5.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test5
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test5 coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test5
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- helper.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test5_helper
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test5_helper coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test5_helper
- ${COMMON_TEST_LIBRARIES}
-)
const int TIMEOUT = 60 * 5 * 1000;
-char *szcHelperProcessStartEvName = "start";
-char *szcHelperProcessReadyEvName = "ready";
-char *szcHelperProcessFinishEvName = "finish";
+#define szcHelperProcessStartEvName "start"
+#define szcHelperProcessReadyEvName "ready"
+#define szcHelperProcessFinishEvName "finish"
/* PEDANTIC and PEDANTIC0 is a helper macro that just grumps about any
* zero return codes in a generic way. with little typing */
#include <palsuite.h>
-HANDLE hProcessStartEvent;
+HANDLE hProcessStartEvent_WFMO_test5_helper;
HANDLE hProcessReadyEvent;
HANDLE hProcessFinishEvent;
HANDLE hProcessCleanupEvent;
-int __cdecl main(int argc, char *argv[])
+PALTEST(threading_WaitForMultipleObjectsEx_test5_paltest_waitformultipleobjectsex_test5_helper, "threading/WaitForMultipleObjectsEx/test5/paltest_waitformultipleobjectsex_test5_helper")
{
BOOL success = TRUE; /* assume success */
/* Open the event to let test thread tell us to get started. */
uniString = convert(szcHelperProcessStartEvName);
- hProcessStartEvent = OpenEventW(EVENT_ALL_ACCESS, 0, uniString);
+ hProcessStartEvent_WFMO_test5_helper = OpenEventW(EVENT_ALL_ACCESS, 0, uniString);
free(uniString);
- if (!hProcessStartEvent)
+ if (!hProcessStartEvent_WFMO_test5_helper)
{
Fail("helper.main: OpenEvent of '%S' failed (%u). "
"(the event should already exist!)\n",
}
/* Wait for signal from test thread. */
- dwRet = WaitForSingleObject(hProcessStartEvent, TIMEOUT);
+ dwRet = WaitForSingleObject(hProcessStartEvent_WFMO_test5_helper, TIMEOUT);
if (dwRet != WAIT_OBJECT_0)
{
Fail("helper.main: WaitForSingleObject '%s' failed\n"
szcHelperProcessFinishEvName, dwProcessId, GetLastError());
}
- PEDANTIC(CloseHandle, (hProcessStartEvent));
+ PEDANTIC(CloseHandle, (hProcessStartEvent_WFMO_test5_helper));
PEDANTIC(CloseHandle, (hProcessReadyEvent));
PEDANTIC(CloseHandle, (hProcessFinishEvent));
- PAL_Terminate();
+ PAL_TerminateEx(success ? PASS : FAIL);
return success ? PASS : FAIL;
}
HANDLE hProcessFinishEvent;
} helper_process[MAX_HELPER_PROCESS];
-HANDLE hProcessStartEvent;
+HANDLE hProcessStartEvent_WFMO_test5;
struct helper_thread_t
{
/* Create the event to start helper process after it was created. */
uniString = convert(szcHelperProcessStartEvName);
- hProcessStartEvent = CreateEvent(NULL, TRUE, FALSE, uniString);
+ hProcessStartEvent_WFMO_test5 = CreateEvent(NULL, TRUE, FALSE, uniString);
free(uniString);
- if (!hProcessStartEvent)
+ if (!hProcessStartEvent_WFMO_test5)
{
Fail("test5.Setup: CreateEvent of '%s' failed. "
"GetLastError() returned %d.\n", szcHelperProcessStartEvName,
free(uniStringHelper);
/* Signal all helper processes to start. */
- if (!SetEvent(hProcessStartEvent))
+ if (!SetEvent(hProcessStartEvent_WFMO_test5))
{
Fail("test5.Setup: SetEvent '%s' failed\n",
"LastError:(%u)\n",
* Cleanup the helper processes and helper threads.
*/
DWORD
-Cleanup()
+Cleanup_WFMO_test5()
{
DWORD dwExitCode;
DWORD dwRet;
}
/* Close all process start event. */
- PEDANTIC(CloseHandle, (hProcessStartEvent));
+ PEDANTIC(CloseHandle, (hProcessStartEvent_WFMO_test5));
return dwExitCode;
}
}
}
-int __cdecl main(int argc, char *argv[])
+PALTEST(threading_WaitForMultipleObjectsEx_test5_paltest_waitformultipleobjectsex_test5, "threading/WaitForMultipleObjectsEx/test5/paltest_waitformultipleobjectsex_test5")
{
DWORD dwExitCode;
Setup();
ThreadIndexOfThreadFinishEvent = 3;
TestWakeupOneThread();
- dwExitCode = Cleanup();
+ dwExitCode = Cleanup_WFMO_test5();
if (PASS == dwExitCode)
{
Setup();
TestWakeupAllThread();
- dwExitCode = Cleanup();
+ dwExitCode = Cleanup_WFMO_test5();
}
PAL_TerminateEx(dwExitCode);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = WaitForMultipleObjectsEx
-Name = Check simultaneously waiting on multiple processes.
-TYPE = DEFAULT
-EXE1 = test5
-EXE2 = helper
-Description
-= Create a number of helper processes and helper threads.
-= Helper threads wait on helper processes to finish.
-= Helper processes wait on the event signal from test
-= thread before exit. The test thread then selectively
-= signals helper process to finish and then wait on the
-= selected helper thread to finish.
+++ /dev/null
-set(TESTSOURCES
- test6.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test6
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test6 coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test6
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- child6.cpp
-)
-
-add_executable(paltest_waitformultipleobjectsex_test6_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_waitformultipleobjectsex_test6_child coreclrpal)
-
-target_link_libraries(paltest_waitformultipleobjectsex_test6_child
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForMultipleObjectsEx_test6_paltest_waitformultipleobjectsex_test6_child, "threading/WaitForMultipleObjectsEx/test6/paltest_waitformultipleobjectsex_test6_child")
{
int i, iRet;
BOOL bRet;
return 0;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForMultipleObjectsEx_test6_paltest_waitformultipleobjectsex_test6, "threading/WaitForMultipleObjectsEx/test6/paltest_waitformultipleobjectsex_test6")
{
DWORD dwRet;
DWORD dwSlaveThreadTid = 0;
+++ /dev/null
-
-PAL,threading,palsuite\threading\waitformultipleobjectsex\test6,Test6forWaitForMultipleObjectsEx=test6.c child6.c,<SUPPORTEXE>
+++ /dev/null
-add_subdirectory(test1)
-add_subdirectory(WFSOExMutexTest)
-add_subdirectory(WFSOExSemaphoreTest)
-add_subdirectory(WFSOExThreadTest)
-add_subdirectory(WFSOMutexTest)
-add_subdirectory(WFSOProcessTest)
-add_subdirectory(WFSOSemaphoreTest)
-add_subdirectory(WFSOThreadTest)
-
+++ /dev/null
-set(SOURCES
- WFSOExMutexTest.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsoexmutextest
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsoexmutextest coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsoexmutextest
- ${COMMON_TEST_LIBRARIES}
-)
const int InterruptTime = 2000;
const DWORD AcceptableDelta = 300;
-void RunTest(BOOL AlertThread);
-VOID PALAPI APCFunc(ULONG_PTR dwParam);
-DWORD PALAPI WaiterProc(LPVOID lpParameter);
+void RunTest_WFSOExMutexTest(BOOL AlertThread);
+VOID PALAPI APCFunc_WFSOExMutexTest(ULONG_PTR dwParam);
+DWORD PALAPI WaiterProc_WFSOExMutexTest(LPVOID lpParameter);
-DWORD ThreadWaitDelta;
-HANDLE hMutex;
+DWORD ThreadWaitDelta_WFSOExMutexTest;
+HANDLE hMutex_WFSOExMutexTest;
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_WaitForSingleObject_WFSOExMutexTest_paltest_waitforsingleobject_wfsoexmutextest, "threading/WaitForSingleObject/WFSOExMutexTest/paltest_waitforsingleobject_wfsoexmutextest")
{
int ret=0;
*/
/* Create a mutex that is not in the signalled state */
- hMutex = CreateMutex(NULL, //No security attributes
+ hMutex_WFSOExMutexTest = CreateMutex(NULL, //No security attributes
TRUE, //Iniitally owned
NULL); //Name of mutex
- if (hMutex == NULL)
+ if (hMutex_WFSOExMutexTest == NULL)
{
Fail("Failed to create mutex! GetLastError returned %d.\n",
GetLastError());
* it, if it's in an alertable state.
*/
- RunTest(TRUE);
- if ((ThreadWaitDelta - InterruptTime) > AcceptableDelta)
+ RunTest_WFSOExMutexTest(TRUE);
+ if ((ThreadWaitDelta_WFSOExMutexTest - InterruptTime) > AcceptableDelta)
{
Fail("Expected thread to wait for %d ms (and get interrupted).\n"
"Thread waited for %d ms! (Acceptable delta: %d)\n",
- InterruptTime, ThreadWaitDelta, AcceptableDelta);
+ InterruptTime, ThreadWaitDelta_WFSOExMutexTest, AcceptableDelta);
}
* Check that Queueing an APC in the middle of a wait does NOT interrupt
* it, if it is not in an alertable state.
*/
- RunTest(FALSE);
- if ((ThreadWaitDelta - ChildThreadWaitTime) > AcceptableDelta)
+ RunTest_WFSOExMutexTest(FALSE);
+ if ((ThreadWaitDelta_WFSOExMutexTest - ChildThreadWaitTime) > AcceptableDelta)
{
Fail("Expected thread to wait for %d ms (and not be interrupted).\n"
"Thread waited for %d ms! (Acceptable delta: %d)\n",
- ChildThreadWaitTime, ThreadWaitDelta, AcceptableDelta);
+ ChildThreadWaitTime, ThreadWaitDelta_WFSOExMutexTest, AcceptableDelta);
}
//Release Mutex
- ret = ReleaseMutex(hMutex);
+ ret = ReleaseMutex(hMutex_WFSOExMutexTest);
if (0==ret)
{
Fail("Unable to Release Mutex!\n"
}
//Close Mutex Handle
- ret = CloseHandle(hMutex);
+ ret = CloseHandle(hMutex_WFSOExMutexTest);
if (!ret)
{
Fail("Unable to close handle to Mutex!\n"
return PASS;
}
-void RunTest(BOOL AlertThread)
+void RunTest_WFSOExMutexTest(BOOL AlertThread)
{
HANDLE hThread = 0;
hThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)WaiterProc,
+ (LPTHREAD_START_ROUTINE)WaiterProc_WFSOExMutexTest,
(LPVOID) AlertThread,
0,
&dwThreadId);
Sleep(InterruptTime);
- ret = QueueUserAPC(APCFunc, hThread, 0);
+ ret = QueueUserAPC(APCFunc_WFSOExMutexTest, hThread, 0);
if (ret == 0)
{
}
/* Function doesn't do anything, just needed to interrupt the wait*/
-VOID PALAPI APCFunc(ULONG_PTR dwParam)
+VOID PALAPI APCFunc_WFSOExMutexTest(ULONG_PTR dwParam)
{
}
/* Entry Point for child thread. */
-DWORD PALAPI WaiterProc(LPVOID lpParameter)
+DWORD PALAPI WaiterProc_WFSOExMutexTest(LPVOID lpParameter)
{
UINT64 OldTimeStamp;
UINT64 NewTimeStamp;
OldTimeStamp = GetHighPrecisionTimeStamp(performanceFrequency);
- ret = WaitForSingleObjectEx( hMutex,
+ ret = WaitForSingleObjectEx( hMutex_WFSOExMutexTest,
ChildThreadWaitTime,
Alertable);
"Expected return of WAIT_TIMEOUT, got %d.\n", ret);
}
- ThreadWaitDelta = NewTimeStamp - OldTimeStamp;
+ ThreadWaitDelta_WFSOExMutexTest = NewTimeStamp - OldTimeStamp;
return 0;
}
+++ /dev/null
-set(SOURCES
- WFSOExSemaphoreTest.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsoexsemaphoretest
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsoexsemaphoretest coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsoexsemaphoretest
- ${COMMON_TEST_LIBRARIES}
-)
const int InterruptTime = 2000;
const DWORD AcceptableDelta = 300;
-void RunTest(BOOL AlertThread);
-VOID PALAPI APCFunc(ULONG_PTR dwParam);
-DWORD PALAPI WaiterProc(LPVOID lpParameter);
+void RunTest_WFSOExSemaphoreTest(BOOL AlertThread);
+VOID PALAPI APCFunc_WFSOExSemaphoreTest(ULONG_PTR dwParam);
+DWORD PALAPI WaiterProc_WFSOExSemaphoreTest(LPVOID lpParameter);
-DWORD ThreadWaitDelta;
+DWORD ThreadWaitDelta_WFSOExSemaphoreTest;
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_WaitForSingleObject_WFSOExSemaphoreTest_paltest_waitforsingleobject_wfsoexsemaphoretest, "threading/WaitForSingleObject/WFSOExSemaphoreTest/paltest_waitforsingleobject_wfsoexsemaphoretest")
{
if (0 != (PAL_Initialize(argc, argv)))
{
* it, if it's in an alertable state.
*/
- RunTest(TRUE);
- if ((ThreadWaitDelta - InterruptTime) > AcceptableDelta)
+ RunTest_WFSOExSemaphoreTest(TRUE);
+ if ((ThreadWaitDelta_WFSOExSemaphoreTest - InterruptTime) > AcceptableDelta)
{
Fail("Expected thread to wait for %d ms (and get interrupted).\n"
"Thread waited for %d ms! (Acceptable delta: %d)\n",
- InterruptTime, ThreadWaitDelta, AcceptableDelta);
+ InterruptTime, ThreadWaitDelta_WFSOExSemaphoreTest, AcceptableDelta);
}
* Check that Queueing an APC in the middle of a wait does NOT interrupt
* it, if it is not in an alertable state.
*/
- RunTest(FALSE);
- if ((ThreadWaitDelta - ChildThreadWaitTime) > AcceptableDelta)
+ RunTest_WFSOExSemaphoreTest(FALSE);
+ if ((ThreadWaitDelta_WFSOExSemaphoreTest - ChildThreadWaitTime) > AcceptableDelta)
{
Fail("Expected thread to wait for %d ms (and not be interrupted).\n"
"Thread waited for %d ms! (Acceptable delta: %d)\n",
- ChildThreadWaitTime, ThreadWaitDelta, AcceptableDelta);
+ ChildThreadWaitTime, ThreadWaitDelta_WFSOExSemaphoreTest, AcceptableDelta);
}
return PASS;
}
-void RunTest(BOOL AlertThread)
+void RunTest_WFSOExSemaphoreTest(BOOL AlertThread)
{
HANDLE hThread = 0;
DWORD dwThreadId = 0;
hThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)WaiterProc,
+ (LPTHREAD_START_ROUTINE)WaiterProc_WFSOExSemaphoreTest,
(LPVOID) AlertThread,
0,
&dwThreadId);
Sleep(InterruptTime);
- ret = QueueUserAPC(APCFunc, hThread, 0);
+ ret = QueueUserAPC(APCFunc_WFSOExSemaphoreTest, hThread, 0);
if (ret == 0)
{
Fail("QueueUserAPC failed! GetLastError returned %d\n",
}
/* Function doesn't do anything, just needed to interrupt the wait*/
-VOID PALAPI APCFunc(ULONG_PTR dwParam)
+VOID PALAPI APCFunc_WFSOExSemaphoreTest(ULONG_PTR dwParam)
{
}
/* Entry Point for child thread. */
-DWORD PALAPI WaiterProc(LPVOID lpParameter)
+DWORD PALAPI WaiterProc_WFSOExSemaphoreTest(LPVOID lpParameter)
{
HANDLE hSemaphore;
UINT64 OldTimeStamp;
}
- ThreadWaitDelta = NewTimeStamp - OldTimeStamp;
+ ThreadWaitDelta_WFSOExSemaphoreTest = NewTimeStamp - OldTimeStamp;
ret = CloseHandle(hSemaphore);
if (!ret)
+++ /dev/null
-set(SOURCES
- WFSOExThreadTest.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsoexthreadtest
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsoexthreadtest coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsoexthreadtest
- ${COMMON_TEST_LIBRARIES}
-)
const int InterruptTime = 2000;
const DWORD AcceptableDelta = 300;
-void RunTest(BOOL AlertThread);
-VOID PALAPI APCFunc(ULONG_PTR dwParam);
-DWORD PALAPI WaiterProc(LPVOID lpParameter);
-void WorkerThread(void);
+void RunTest_WFSOExThreadTest(BOOL AlertThread);
+VOID PALAPI APCFunc_WFSOExThreadTest(ULONG_PTR dwParam);
+DWORD PALAPI WaiterProc_WFSOExThreadTest(LPVOID lpParameter);
+void WorkerThread_WFSOExThreadTest(void);
-int ThreadWaitDelta;
+int ThreadWaitDelta_WFSOExThreadTest;
-int __cdecl main( int argc, char **argv )
+PALTEST(threading_WaitForSingleObject_WFSOExThreadTest_paltest_waitforsingleobject_wfsoexthreadtest, "threading/WaitForSingleObject/WFSOExThreadTest/paltest_waitforsingleobject_wfsoexthreadtest")
{
if (0 != (PAL_Initialize(argc, argv)))
{
* it, if it's in an alertable state.
*/
- RunTest(TRUE);
- if (abs(ThreadWaitDelta - InterruptTime) > AcceptableDelta)
+ RunTest_WFSOExThreadTest(TRUE);
+ if (abs(ThreadWaitDelta_WFSOExThreadTest - InterruptTime) > AcceptableDelta)
{
Fail("Expected thread to wait for %d ms (and get interrupted).\n"
"Thread waited for %d ms! (Acceptable delta: %d)\n",
- InterruptTime, ThreadWaitDelta, AcceptableDelta);
+ InterruptTime, ThreadWaitDelta_WFSOExThreadTest, AcceptableDelta);
}
* Check that Queueing an APC in the middle of a wait does NOT interrupt
* it, if it is not in an alertable state.
*/
- RunTest(FALSE);
- if (abs(ThreadWaitDelta - ChildThreadWaitTime) > AcceptableDelta)
+ RunTest_WFSOExThreadTest(FALSE);
+ if (abs(ThreadWaitDelta_WFSOExThreadTest - ChildThreadWaitTime) > AcceptableDelta)
{
Fail("Expected thread to wait for %d ms (and not be interrupted).\n"
"Thread waited for %d ms! (Acceptable delta: %d)\n",
- ChildThreadWaitTime, ThreadWaitDelta, AcceptableDelta);
+ ChildThreadWaitTime, ThreadWaitDelta_WFSOExThreadTest, AcceptableDelta);
}
return PASS;
}
-void RunTest(BOOL AlertThread)
+void RunTest_WFSOExThreadTest(BOOL AlertThread)
{
HANDLE hThread = 0;
DWORD dwThreadId = 0;
//Create thread
hThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)WaiterProc,
+ (LPTHREAD_START_ROUTINE)WaiterProc_WFSOExThreadTest,
(LPVOID) AlertThread,
0,
&dwThreadId);
Sleep(InterruptTime);
- ret = QueueUserAPC(APCFunc, hThread, 0);
+ ret = QueueUserAPC(APCFunc_WFSOExThreadTest, hThread, 0);
if (ret == 0)
{
Fail("QueueUserAPC failed! GetLastError returned %d\n",
}
/* Function doesn't do anything, just needed to interrupt the wait*/
-VOID PALAPI APCFunc(ULONG_PTR dwParam)
+VOID PALAPI APCFunc_WFSOExThreadTest(ULONG_PTR dwParam)
{
}
/* Entry Point for child thread. */
-DWORD PALAPI WaiterProc(LPVOID lpParameter)
+DWORD PALAPI WaiterProc_WFSOExThreadTest(LPVOID lpParameter)
{
HANDLE hWaitThread;
UINT64 OldTimeStamp;
/* Create a thread that does not return immediately to maintain a non signaled test*/
hWaitThread = CreateThread( NULL,
0,
- (LPTHREAD_START_ROUTINE)WorkerThread,
+ (LPTHREAD_START_ROUTINE)WorkerThread_WFSOExThreadTest,
NULL,
0,
&dwThreadId);
"Expected return of WAIT_TIMEOUT, got %d.\n", ret);
}
- ThreadWaitDelta = NewTimeStamp - OldTimeStamp;
+ ThreadWaitDelta_WFSOExThreadTest = NewTimeStamp - OldTimeStamp;
ret = CloseHandle(hWaitThread);
if (!ret)
}
-void WorkerThread(void)
+void WorkerThread_WFSOExThreadTest(void)
{
//Make the worker thread sleep to test WFSOEx Functionality
+++ /dev/null
-set(SOURCES
- WFSOMutexTest.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsomutextest
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsomutextest coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsomutextest
- ${COMMON_TEST_LIBRARIES}
-)
#define NUMBER_OF_WORKER_THREADS 2
//Declaring Variables
-HANDLE hMutex = NULL;
-unsigned int globalcounter =0;
-int testReturnCode = PASS;
+HANDLE hMutex_WFSOMutexTest = NULL;
+unsigned int globalcounter_WFSOMutexTest =0;
+int testReturnCode_WFSOMutexTest = PASS;
//Declaring Function Prototypes
DWORD PALAPI WFSOMutexTest(LPVOID params);
-void incrementCounter(void);
+void incrementCounter_WFSOMutexTest(void);
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForSingleObject_WFSOMutexTest_paltest_waitforsingleobject_wfsomutextest, "threading/WaitForSingleObject/WFSOMutexTest/paltest_waitforsingleobject_wfsomutextest")
{
//Declare local variables
}
//Create Mutex
- hMutex = CreateMutex(NULL, // no security attributes
+ hMutex_WFSOMutexTest = CreateMutex(NULL, // no security attributes
FALSE, // initially not owned
NULL); // name of mutex
//Check for Mutex Creation
- if (hMutex == NULL)
+ if (hMutex_WFSOMutexTest == NULL)
{
Fail("Create Mutex Failed, GetLastError: %d\n", GetLastError());
}
if( WAIT_OBJECT_0 != returnCode )
{
Trace("Wait for Object(s) returned %d, and GetLastError value is %d\n", returnCode, GetLastError());
- testReturnCode = FAIL;
+ testReturnCode_WFSOMutexTest = FAIL;
}
//Close thread handles
}
//Close Mutex Handle
-if (0==CloseHandle(hMutex))
+if (0==CloseHandle(hMutex_WFSOMutexTest))
{
Trace("Could not close mutex handle\n");
Fail ( "GetLastError returned %d\n", GetLastError());
}
-PAL_TerminateEx(testReturnCode);
-return ( testReturnCode );
+PAL_TerminateEx(testReturnCode_WFSOMutexTest);
+return ( testReturnCode_WFSOMutexTest );
}
-void incrementCounter(void)
+void incrementCounter_WFSOMutexTest(void)
{
- if (INT_MAX == globalcounter)
+ if (INT_MAX == globalcounter_WFSOMutexTest)
{
- globalcounter = 0;
+ globalcounter_WFSOMutexTest = 0;
}
- globalcounter++;
- Trace("Global Counter Value: %d \n", globalcounter);
+ globalcounter_WFSOMutexTest++;
+ Trace("Global Counter Value: %d \n", globalcounter_WFSOMutexTest);
}
// Request ownership of mutex.
dwWaitResult = WaitForSingleObject(
- hMutex, // handle to mutex
+ hMutex_WFSOMutexTest, // handle to mutex
5000L); // five-second time-out interval
switch (dwWaitResult)
case WAIT_OBJECT_0:
{
- incrementCounter();
+ incrementCounter_WFSOMutexTest();
//Release ownership of the mutex object.
- if (! ReleaseMutex(hMutex))
+ if (! ReleaseMutex(hMutex_WFSOMutexTest))
{
Fail ( "ReleaseMutex() returned NULL. Failing test.\n"
"GetLastError returned %d\n", GetLastError());
+++ /dev/null
-set(TESTSOURCES
- WFSOProcessTest.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsoprocesstest
- ${TESTSOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsoprocesstest coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsoprocesstest
- ${COMMON_TEST_LIBRARIES}
-)
-
-
-set(HELPERSOURCES
- ChildProcess.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsoprocesstest_child
- ${HELPERSOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsoprocesstest_child coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsoprocesstest_child
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForSingleObject_WFSOProcessTest_paltest_waitforsingleobject_wfsoprocesstest_child, "threading/WaitForSingleObject/WFSOProcessTest/paltest_waitforsingleobject_wfsoprocesstest_child")
{
//Declare local variables
#include <palsuite.h>
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForSingleObject_WFSOProcessTest_paltest_waitforsingleobject_wfsoprocesstest, "threading/WaitForSingleObject/WFSOProcessTest/paltest_waitforsingleobject_wfsoprocesstest")
{
//Declare local variables
+++ /dev/null
-set(SOURCES
- WFSOSemaphoreTest.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsosemaphoretest
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsosemaphoretest coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsosemaphoretest
- ${COMMON_TEST_LIBRARIES}
-)
//Declaring Variables
-HANDLE hSemaphore = NULL;
-unsigned int globalcounter =0;
-int testReturnCode = PASS;
+HANDLE hSemaphore_WFSOSemaphore = NULL;
+unsigned int globalcounter_WFSOSemaphore =0;
//Declaring Function Prototypes
DWORD PALAPI WFSOSemaphoreTest(LPVOID params);
-void incrementCounter(void);
+void incrementCounter_WFSOSemaphore(void);
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForSingleObject_WFSOSemaphoreTest_paltest_waitforsingleobject_wfsosemaphoretest, "threading/WaitForSingleObject/WFSOSemaphoreTest/paltest_waitforsingleobject_wfsosemaphoretest")
{
//Declare local variables
+ int testReturnCode = PASS;
int i =0;
int cMax = 2;
}
//Create Semaphore
- hSemaphore = CreateSemaphoreExW(
+ hSemaphore_WFSOSemaphore = CreateSemaphoreExW(
NULL, // no security attributes
cMax, // initial count
cMax, // maximum count
0,
0);
- if (hSemaphore == NULL)
+ if (hSemaphore_WFSOSemaphore == NULL)
{
// Check for error.
Fail("Create Semaphore Failed, GetLastError: %d\n", GetLastError());
}
}
-//Close Semaphore Handle
-if (0==CloseHandle(hSemaphore))
+//Close Semaphore Handle
+if (0==CloseHandle(hSemaphore_WFSOSemaphore))
{
Trace("Could not close semaphore handle\n");
Fail ( "GetLastError returned %d\n", GetLastError());
}
-void incrementCounter(void)
+void incrementCounter_WFSOSemaphore(void)
{
- if (INT_MAX == globalcounter)
+ if (INT_MAX == globalcounter_WFSOSemaphore)
{
- globalcounter = 0;
+ globalcounter_WFSOSemaphore = 0;
}
- globalcounter++;
- Trace("Global Counter Value: %d \n", globalcounter);
+ globalcounter_WFSOSemaphore++;
+ Trace("Global Counter Value: %d \n", globalcounter_WFSOSemaphore);
}
// Request ownership of Semaphore
- dwWaitResult = WaitForSingleObject(
- hSemaphore, // handle to semaphore
+ dwWaitResult = WaitForSingleObject(
+ hSemaphore_WFSOSemaphore, // handle to semaphore
0L); // zero-second time-out interval
case WAIT_OBJECT_0:
{
- incrementCounter();
+ incrementCounter_WFSOSemaphore();
// Increment the count of the semaphore.
if (!ReleaseSemaphore(
- hSemaphore, // handle to semaphore
+ hSemaphore_WFSOSemaphore, // handle to semaphore
1, // increase count by one
NULL) ) // not interested in previous count
{
+++ /dev/null
-set(SOURCES
- WFSOThreadTest.cpp
-)
-
-add_executable(paltest_waitforsingleobject_wfsothreadtest
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_wfsothreadtest coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_wfsothreadtest
- ${COMMON_TEST_LIBRARIES}
-)
//Declaring Variables
-HANDLE hThread = NULL;
-HANDLE hEvent = NULL;
+HANDLE hThread_WFSOThreadTest = NULL;
+HANDLE hEvent_WFSOThreadTest = NULL;
-unsigned int globalcounter =0;
+unsigned int globalcounter_WFSOThreadTest =0;
//Declaring Function Prototypes
DWORD PALAPI incrementCounter(LPVOID params);
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForSingleObject_WFSOThreadTest_paltest_waitforsingleobject_wfsothreadtest, "threading/WaitForSingleObject/WFSOThreadTest/paltest_waitforsingleobject_wfsothreadtest")
{
//Declare local variables
//Create Event
- hEvent = CreateEvent(NULL,TRUE,FALSE, NULL);
- if(hEvent == NULL)
+ hEvent_WFSOThreadTest = CreateEvent(NULL,TRUE,FALSE, NULL);
+ if(hEvent_WFSOThreadTest == NULL)
{
Fail("Create Event Failed\n"
"GetLastError returned %d\n", GetLastError());
//Create Thread
- hThread = CreateThread(
+ hThread_WFSOThreadTest = CreateThread(
NULL,
0,
incrementCounter,
0,
&dwThreadId);
- if ( NULL == hThread )
+ if ( NULL == hThread_WFSOThreadTest )
{
Fail ( "CreateThread() returned NULL. Failing test.\n"
"GetLastError returned %d\n", GetLastError());
//Wait For Thread to signal start
- dwWaitResult = WaitForSingleObject(hEvent,INFINITE);
+ dwWaitResult = WaitForSingleObject(hEvent_WFSOThreadTest,INFINITE);
switch (dwWaitResult)
{
//Wait for Thread to finish
dwWaitResult = WaitForSingleObject(
- hThread, //handle to thread
+ hThread_WFSOThreadTest, //handle to thread
5000L); //Wait Indefinitely
//Close Handles
-if (0==CloseHandle(hEvent))
+if (0==CloseHandle(hEvent_WFSOThreadTest))
{
Trace("Could not Close event handle\n");
Fail ( "GetLastError returned %d\n", GetLastError());
}
-if (0==CloseHandle(hThread))
+if (0==CloseHandle(hThread_WFSOThreadTest))
{
Trace("Could not Close thread handle\n");
Fail ( "GetLastError returned %d\n", GetLastError());
{
//Signal Event so that main thread can start to wait for thread object
- if (0==SetEvent(hEvent))
+ if (0==SetEvent(hEvent_WFSOThreadTest))
{
Fail ( "SetEvent returned Zero. Failing test.\n"
"GetLastError returned %d\n", GetLastError());
}
- for (globalcounter=0;globalcounter<100000;globalcounter++);
+ for (globalcounter_WFSOThreadTest=0;globalcounter_WFSOThreadTest<100000;globalcounter_WFSOThreadTest++);
//Sleep(5000);
- Trace("Global Counter Value: %d \n", globalcounter);
+ Trace("Global Counter Value: %d \n", globalcounter_WFSOThreadTest);
return 0;
}
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_waitforsingleobject_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_waitforsingleobject_test1 coreclrpal)
-
-target_link_libraries(paltest_waitforsingleobject_test1
- ${COMMON_TEST_LIBRARIES}
-)
return bRet;
}
-int __cdecl main(int argc, char **argv)
+PALTEST(threading_WaitForSingleObject_test1_paltest_waitforsingleobject_test1, "threading/WaitForSingleObject/test1/paltest_waitforsingleobject_test1")
{
if(0 != (PAL_Initialize(argc, argv)))
{
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = WaitForSingleObject
-Name = Positive Test for WaitForSingleObject
-TYPE = DEFAULT
-EXE1 = test1
-Description
-= Test for WaitForSingleObject. Create two events, one
-= with a TRUE and one with FALSE intial state. Ensure that WaitForSingle
-= returns correct values for each of these.
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test1.cpp
-)
-
-add_executable(paltest_yieldprocessor_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_yieldprocessor_test1 coreclrpal)
-
-target_link_libraries(paltest_yieldprocessor_test1
- ${COMMON_TEST_LIBRARIES}
-)
#define THREAD_COUNT 10
#define REPEAT_COUNT 1000
#define TIMEOUT 60000
-void PALAPI Run_Thread(LPVOID lpParam);
+void PALAPI Run_Thread_yieldprocessor_test1(LPVOID lpParam);
/**
* main
*
* executable entry point
*/
-INT __cdecl main( INT argc, CHAR **argv )
+PALTEST(threading_YieldProcessor_test1_paltest_yieldprocessor_test1, "threading/YieldProcessor/test1/paltest_yieldprocessor_test1")
{
DWORD dwParam;
HANDLE hThread[THREAD_COUNT];
hThread[i] = CreateThread(
NULL, /* no security attributes */
0, /* use default stack size */
- (LPTHREAD_START_ROUTINE)Run_Thread,/* thread function */
+ (LPTHREAD_START_ROUTINE)Run_Thread_yieldprocessor_test1,/* thread function */
(LPVOID)dwParam, /* argument to thread function */
0, /* use default creation flags */
&threadId[i] /* returns the thread identifier*/
}
-void PALAPI Run_Thread (LPVOID lpParam)
+void PALAPI Run_Thread_yieldprocessor_test1 (LPVOID lpParam)
{
int i = 0;
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = YieldProcessor
-Name = Test for YieldProcessor
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Purpose: Test to ensure YieldProcessor is
-= working properly on supported platforms
+++ /dev/null
-add_subdirectory(test1)
-
+++ /dev/null
-set(SOURCES
- test.cpp
-)
-
-add_executable(paltest_releasesemaphore_test1
- ${SOURCES}
-)
-
-add_dependencies(paltest_releasesemaphore_test1 coreclrpal)
-
-target_link_libraries(paltest_releasesemaphore_test1
- ${COMMON_TEST_LIBRARIES}
-)
#include <palsuite.h>
-HANDLE hSemaphore;
-int __cdecl main (int argc, char **argv)
+PALTEST(threading_releasesemaphore_test1_paltest_releasesemaphore_test1, "threading/releasesemaphore/test1/paltest_releasesemaphore_test1")
{
+ HANDLE hSemaphore;
if(0 != (PAL_Initialize(argc, argv)))
{
return (FAIL);
+++ /dev/null
-# Licensed to the .NET Foundation under one or more agreements.
-# The .NET Foundation licenses this file to you under the MIT license.
-
-Version = 1.0
-Section = threading
-Function = ReleaseSemaphore
-Name = Positive Test for ReleaseSemaphore
-TYPE = DEFAULT
-EXE1 = test
-Description
-= Check that ReleaseSemaphore fails when using a semaphore handle
-= which has been closed by a call to CloseHandle. Check that
-= ReleaseSemaphore fails when using a ReleaseCount of zero or less than
-= zero.
add_subdirectory(../../vm/crossgen ../../vm/crossgen)
# add the install targets
-install_clr(TARGETS crossgen ADDITIONAL_DESTINATION sharedFramework)
+install_clr(TARGETS crossgen ADDITIONAL_DESTINATIONS sharedFramework)
TimeoutPerTestInMinutes=$(_TimeoutPerTestInMinutes);
RuntimeVariant=$(_RuntimeVariant);
BundledNETCoreAppPackageVersion=$(BundledNETCoreAppPackageVersion);
- HelixRuntimeRid=$(HelixRuntimeRid)
+ HelixRuntimeRid=$(HelixRuntimeRid);
+ PALTestsDir=$(_PALTestsDir)
</_PropertiesToPass>
<MSBuild Projects="$(MSBuildProjectFile)" Targets="PrepareCorrelationPayloadDirectory" />
<MSBuild Projects="$(MSBuildProjectFile)" Targets="PreparePayloadsDirectories" Properties="Scenarios=$(_Scenarios)" StopOnFirstFailure="true" />
+ <MSBuild Projects="$(MSBuildProjectFile)" Targets="PreparePALTestArchive" Properties="$(_PropertiesToPass)" StopOnFirstFailure="true" />
<ItemGroup>
<_Scenarios Include="$(_Scenarios.Split(','))" />
<BinDir>$([MSBuild]::NormalizeDirectory($(TestWorkingDir)))</BinDir>
<CoreRootDirectory>$(BinDir)Tests\Core_Root\</CoreRootDirectory>
<PayloadsRootDirectory>$(BinDir)Payloads\</PayloadsRootDirectory>
+ <PayloadsRootDirectory>$([MSBuild]::NormalizeDirectory($(PayloadsRootDirectory)))</PayloadsRootDirectory>
<TestEnvFileName Condition=" '$(TargetsWindows)' == 'true' ">SetStressModes_$(Scenario).cmd</TestEnvFileName>
<TestEnvFileName Condition=" '$(TargetsWindows)' != 'true' ">SetStressModes_$(Scenario).sh</TestEnvFileName>
<MSBuild Projects="@(_ProjectsToBuild)" Targets="CreateTestEnvFile" StopOnFirstFailure="true" />
</Target>
+ <Target Name="PreparePALTestArchive">
+ <Exec Condition="'$(PALTestsDir)' != '' and '$(TargetsWindows)' != 'true'"
+ WorkingDirectory="$(PALTestsDir)"
+ Command="tar -czvf $(PayloadsRootDirectory)paltests.tar.gz `ls -A`"/>
+ </Target>
+
<Target Name="PreparePayloadsDirectories" DependsOnTargets="PreparePayloadDirectory">
<PropertyGroup>
<_PayloadGroups>@(_XUnitWrapperDll->Metadata('PayloadGroup')->DistinctWithCase())</_PayloadGroups>
<Command Condition=" '%(TestGroup)' != '' ">dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup)</Command>
<Timeout Condition=" '$(TimeoutPerTestCollectionInMinutes)' != '' ">$([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes)))</Timeout>
</HelixWorkItem>
+
+ <HelixWorkItem Condition="'$(PALTestsDir)' != '' and '$(TargetsWindows)' != 'true'" Include="PALTests">
+ <PayloadArchive>$(PayloadsRootDirectory)paltests.tar.gz</PayloadArchive>
+ <Command>./runpaltestshelix.sh</Command>
+ <Timeout Condition=" '$(TimeoutPerTestCollectionInMinutes)' != '' ">$([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes)))</Timeout>
+ </HelixWorkItem>
</ItemGroup>
<Import Sdk="Microsoft.DotNet.Helix.Sdk" Project="Sdk.targets" Condition=" '$(UsesHelixSdk)' == 'true' " />