mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-02-01 14:02:24 +01:00
130 lines
5.0 KiB
Diff
130 lines
5.0 KiB
Diff
From 43fd712b4f679fe00d6d75c8bc088357052a0365 Mon Sep 17 00:00:00 2001
|
|
From: Ben Gamari <ben@smart-cactus.org>
|
|
Date: Tue, 11 Jun 2019 09:54:55 -0400
|
|
Subject: [PATCH] testsuite: A more portable solution to #9399
|
|
|
|
Previously we used an awful hybrid batch script/Bourne shell script to
|
|
allow this test to run both on Windows and Linux (fixing #9399).
|
|
However, this breaks on some libc implementations (e.g. musl). Fix this.
|
|
|
|
Fixes #16798.
|
|
---
|
|
libraries/base/tests/all.T | 28 ++++++++++++++++++-------
|
|
libraries/base/tests/enum01.hs | 4 ----
|
|
libraries/base/tests/enum02.hs | 4 ----
|
|
libraries/base/tests/enum03.hs | 4 ----
|
|
libraries/base/tests/enum_processor.bat | 6 ------
|
|
libraries/base/tests/enum_processor.py | 2 ++
|
|
6 files changed, 23 insertions(+), 25 deletions(-)
|
|
mode change 100644 => 100755 libraries/base/tests/enum_processor.py
|
|
|
|
diff --git a/libraries/base/tests/all.T b/libraries/base/tests/all.T
|
|
index e64ca40006..33e9e196a8 100644
|
|
--- a/libraries/base/tests/all.T
|
|
+++ b/libraries/base/tests/all.T
|
|
@@ -94,13 +94,27 @@ test('dynamic004', omit_ways(['normal', 'threaded1', 'ghci']), compile_and_
|
|
test('dynamic005', normal, compile_and_run, [''])
|
|
|
|
enum_setups = [when(fast(), skip)]
|
|
-test('enum01', [extra_files(['enum_processor.bat', 'enum_processor.py']),
|
|
- enum_setups], compile_and_run, [''])
|
|
-test('enum02', [extra_files(['enum_processor.bat', 'enum_processor.py']),
|
|
- enum_setups], compile_and_run, [''])
|
|
-test('enum03', [extra_files(['enum_processor.bat', 'enum_processor.py']),
|
|
- enum_setups], compile_and_run, [''])
|
|
-test('enum04', normal, compile_and_run, [''])
|
|
+def enum_test(name):
|
|
+ """
|
|
+ These tests have a funky Python preprocessor which require some headstands
|
|
+ to run on Windows.
|
|
+ """
|
|
+ if opsys('mingw32'):
|
|
+ test(name,
|
|
+ [when(opsys('mingw32'), extra_files(['enum_processor.bat'])),
|
|
+ extra_files(['enum_processor.py'])],
|
|
+ compile_and_run,
|
|
+ ['-F -pgmF ./enum_processor.bat'])
|
|
+ else:
|
|
+ test(name,
|
|
+ [extra_files(['enum_processor.py'])],
|
|
+ compile_and_run,
|
|
+ ['-F -pgmF ./enum_processor.py'])
|
|
+
|
|
+enum_test('enum01')
|
|
+enum_test('enum02')
|
|
+enum_test('enum03')
|
|
+test('enum04', normal, compile_and_run, [''])
|
|
|
|
test('exceptionsrun001', normal, compile_and_run, [''])
|
|
test('exceptionsrun002', normal, compile_and_run, [''])
|
|
diff --git a/libraries/base/tests/enum01.hs b/libraries/base/tests/enum01.hs
|
|
index 5aea7dea4d..4dfc29978c 100644
|
|
--- a/libraries/base/tests/enum01.hs
|
|
+++ b/libraries/base/tests/enum01.hs
|
|
@@ -1,8 +1,4 @@
|
|
-- !!! Testing the Prelude's Enum instances.
|
|
-{-# OPTIONS_GHC -F -pgmF ./enum_processor.bat #-}
|
|
--- The processor is a non-CPP-based equivalent of
|
|
--- #define printTest(x) (do{ putStr ( " " ++ "x" ++ " = " ) ; print (x) })
|
|
--- which is not portable to clang
|
|
|
|
module Main(main) where
|
|
|
|
diff --git a/libraries/base/tests/enum02.hs b/libraries/base/tests/enum02.hs
|
|
index 2d06f95f90..3741880f57 100644
|
|
--- a/libraries/base/tests/enum02.hs
|
|
+++ b/libraries/base/tests/enum02.hs
|
|
@@ -1,8 +1,4 @@
|
|
-- !!! Testing the Int Enum instances.
|
|
-{-# OPTIONS_GHC -F -pgmF ./enum_processor.bat #-}
|
|
--- The processor is a non-CPP-based equivalent of
|
|
--- #define printTest(x) (do{ putStr ( " " ++ "x" ++ " = " ) ; print (x) })
|
|
--- which is not portable to clang
|
|
|
|
module Main(main) where
|
|
|
|
diff --git a/libraries/base/tests/enum03.hs b/libraries/base/tests/enum03.hs
|
|
index 28d02d1c13..a701df4501 100644
|
|
--- a/libraries/base/tests/enum03.hs
|
|
+++ b/libraries/base/tests/enum03.hs
|
|
@@ -1,8 +1,4 @@
|
|
-- !!! Testing the Word Enum instances.
|
|
-{-# OPTIONS_GHC -F -pgmF ./enum_processor.bat #-}
|
|
--- The processor is a non-CPP-based equivalent of
|
|
--- #define printTest(x) (do{ putStr ( " " ++ "x" ++ " = " ) ; print (x) })
|
|
--- which is not portable to clang
|
|
|
|
module Main(main) where
|
|
|
|
diff --git a/libraries/base/tests/enum_processor.bat b/libraries/base/tests/enum_processor.bat
|
|
index 2b13a7db07..6f9eb0fd29 100755
|
|
--- a/libraries/base/tests/enum_processor.bat
|
|
+++ b/libraries/base/tests/enum_processor.bat
|
|
@@ -1,11 +1,5 @@
|
|
:;# Problem: GHC on Windows doesn't like '-pgmF ./enum_processor.py'.
|
|
:;# See ticket:365#comment:7 for details.
|
|
:;#
|
|
-:;# Workaround: this file, which functions both as a Windows .bat script and a
|
|
-:;# Unix shell script. Hacky, but it seems to work.
|
|
|
|
-:;# Starts with a ':', to skip on Windows.
|
|
-:; "${PYTHON}" enum_processor.py $@; exit $?
|
|
-
|
|
-:;# Windows only:
|
|
%PYTHON% enum_processor.py %*
|
|
diff --git a/libraries/base/tests/enum_processor.py b/libraries/base/tests/enum_processor.py
|
|
old mode 100644
|
|
new mode 100755
|
|
index 15243f11ff..b4ca3e9797
|
|
--- a/libraries/base/tests/enum_processor.py
|
|
+++ b/libraries/base/tests/enum_processor.py
|
|
@@ -1,3 +1,5 @@
|
|
+#!/usr/bin/env python3
|
|
+
|
|
# The rough equivalent of the traditional CPP:
|
|
# #define printTest(x) (do{ putStr ( " " ++ "x" ++ " = " ) ; print (x) })
|
|
# which is not portable to clang.
|
|
--
|
|
2.22.0
|
|
|