diff mbox series

tests: only run rounding tests if FE_UPWARD is present

Message ID 20181130163323.23739-1-ross.burton@intel.com
State Accepted
Commit acc32faa137f7df13d1f1b74c28a562414587e70
Headers show
Series tests: only run rounding tests if FE_UPWARD is present | expand

Commit Message

Ross Burton Nov. 30, 2018, 4:33 p.m. UTC
On ARM, musl does not define FE_* when the architecture does not have VFP (which
is the right interpretation).

As these tests depend on calling fesetround(), skip the test if FE_UPWARD isn't
available.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 tests/general/roundmode-getintegerv.c | 12 ++++++++----
 tests/general/roundmode-pixelstore.c  | 12 ++++++++----
 2 files changed, 16 insertions(+), 8 deletions(-)

Comments

Eric Engestrom Nov. 30, 2018, 5:44 p.m. UTC | #1
On Friday, 2018-11-30 16:33:23 +0000, Ross Burton wrote:
> On ARM, musl does not define FE_* when the architecture does not have VFP (which
> is the right interpretation).
> 
> As these tests depend on calling fesetround(), skip the test if FE_UPWARD isn't
> available.
> 
> Signed-off-by: Ross Burton <ross.burton@intel.com>

Maybe add to the commit message when pushing:

  From the fesetround(3) man page:
  > Each of the macros FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, and
  > FE_TOWARDZERO is defined when the implementation supports getting
  > and setting the corresponding rounding direction.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>

> ---
>  tests/general/roundmode-getintegerv.c | 12 ++++++++----
>  tests/general/roundmode-pixelstore.c  | 12 ++++++++----
>  2 files changed, 16 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/general/roundmode-getintegerv.c b/tests/general/roundmode-getintegerv.c
> index 28ecfaf55..aa99044a1 100644
> --- a/tests/general/roundmode-getintegerv.c
> +++ b/tests/general/roundmode-getintegerv.c
> @@ -79,13 +79,17 @@ test(float val, int expect)
>  void
>  piglit_init(int argc, char **argv)
>  {
> -	int ret;
>  	bool pass = true;
> -	ret = fesetround(FE_UPWARD);
> -	if (ret != 0) {
> -		printf("Couldn't set rounding mode\n");
> +
> +#ifdef FE_UPWARD
> +	if (fesetround(FE_UPWARD) != 0) {
> +		printf("Setting rounding mode failed\n");
>  		piglit_report_result(PIGLIT_SKIP);
>  	}
> +#else
> +	printf("Cannot set rounding mode\n");
> +	piglit_report_result(PIGLIT_SKIP);
> +#endif
>  
>  	pass = test(2.2, 2) && pass;
>  	pass = test(2.8, 3) && pass;
> diff --git a/tests/general/roundmode-pixelstore.c b/tests/general/roundmode-pixelstore.c
> index 8a029b257..57ec11c09 100644
> --- a/tests/general/roundmode-pixelstore.c
> +++ b/tests/general/roundmode-pixelstore.c
> @@ -79,13 +79,17 @@ test(float val, int expect)
>  void
>  piglit_init(int argc, char **argv)
>  {
> -	int ret;
>  	bool pass = true;
> -	ret = fesetround(FE_UPWARD);
> -	if (ret != 0) {
> -		printf("Couldn't set rounding mode\n");
> +
> +#ifdef FE_UPWARD
> +	if (fesetround(FE_UPWARD) != 0) {
> +		printf("Setting rounding mode failed\n");
>  		piglit_report_result(PIGLIT_SKIP);
>  	}
> +#else
> +	printf("Cannot set rounding mode\n");
> +	piglit_report_result(PIGLIT_SKIP);
> +#endif
>  
>  	pass = test(2.2, 2) && pass;
>  	pass = test(2.8, 3) && pass;
> -- 
> 2.11.0
> 
> _______________________________________________
> Piglit mailing list
> Piglit@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit
Ross Burton Nov. 30, 2018, 6:31 p.m. UTC | #2
On Fri, 30 Nov 2018 at 17:44, Eric Engestrom <eric.engestrom@intel.com> wrote:
> On Friday, 2018-11-30 16:33:23 +0000, Ross Burton wrote:
> > On ARM, musl does not define FE_* when the architecture does not have VFP (which
> > is the right interpretation).
> >
> > As these tests depend on calling fesetround(), skip the test if FE_UPWARD isn't
> > available.
> >
> > Signed-off-by: Ross Burton <ross.burton@intel.com>
>
> Maybe add to the commit message when pushing:
>
>   From the fesetround(3) man page:
>   > Each of the macros FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, and
>   > FE_TOWARDZERO is defined when the implementation supports getting
>   > and setting the corresponding rounding direction.
>
> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>

I can revise the message and re-submit, but I can't push to piglit.

Ross
Eric Engestrom Nov. 30, 2018, 6:41 p.m. UTC | #3
On Friday, 2018-11-30 18:31:16 +0000, Burton, Ross wrote:
> On Fri, 30 Nov 2018 at 17:44, Eric Engestrom <eric.engestrom@intel.com> wrote:
> > On Friday, 2018-11-30 16:33:23 +0000, Ross Burton wrote:
> > > On ARM, musl does not define FE_* when the architecture does not have VFP (which
> > > is the right interpretation).
> > >
> > > As these tests depend on calling fesetround(), skip the test if FE_UPWARD isn't
> > > available.
> > >
> > > Signed-off-by: Ross Burton <ross.burton@intel.com>
> >
> > Maybe add to the commit message when pushing:
> >
> >   From the fesetround(3) man page:
> >   > Each of the macros FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, and
> >   > FE_TOWARDZERO is defined when the implementation supports getting
> >   > and setting the corresponding rounding direction.
> >
> > Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
> 
> I can revise the message and re-submit, but I can't push to piglit.

It's fine, I'll do that when I push it on Monday, unless someone beats
me to it :P

> 
> Ross
diff mbox series

Patch

diff --git a/tests/general/roundmode-getintegerv.c b/tests/general/roundmode-getintegerv.c
index 28ecfaf55..aa99044a1 100644
--- a/tests/general/roundmode-getintegerv.c
+++ b/tests/general/roundmode-getintegerv.c
@@ -79,13 +79,17 @@  test(float val, int expect)
 void
 piglit_init(int argc, char **argv)
 {
-	int ret;
 	bool pass = true;
-	ret = fesetround(FE_UPWARD);
-	if (ret != 0) {
-		printf("Couldn't set rounding mode\n");
+
+#ifdef FE_UPWARD
+	if (fesetround(FE_UPWARD) != 0) {
+		printf("Setting rounding mode failed\n");
 		piglit_report_result(PIGLIT_SKIP);
 	}
+#else
+	printf("Cannot set rounding mode\n");
+	piglit_report_result(PIGLIT_SKIP);
+#endif
 
 	pass = test(2.2, 2) && pass;
 	pass = test(2.8, 3) && pass;
diff --git a/tests/general/roundmode-pixelstore.c b/tests/general/roundmode-pixelstore.c
index 8a029b257..57ec11c09 100644
--- a/tests/general/roundmode-pixelstore.c
+++ b/tests/general/roundmode-pixelstore.c
@@ -79,13 +79,17 @@  test(float val, int expect)
 void
 piglit_init(int argc, char **argv)
 {
-	int ret;
 	bool pass = true;
-	ret = fesetround(FE_UPWARD);
-	if (ret != 0) {
-		printf("Couldn't set rounding mode\n");
+
+#ifdef FE_UPWARD
+	if (fesetround(FE_UPWARD) != 0) {
+		printf("Setting rounding mode failed\n");
 		piglit_report_result(PIGLIT_SKIP);
 	}
+#else
+	printf("Cannot set rounding mode\n");
+	piglit_report_result(PIGLIT_SKIP);
+#endif
 
 	pass = test(2.2, 2) && pass;
 	pass = test(2.8, 3) && pass;