On Fri, Apr 17, 2015 at 12:38:08PM +0900, YAMAMOTO Takashi wrote:
> Unfortunately ENODEV has different string representations
> among platforms.
> 
> References:
> 
>     
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/errno.h?rev=1.40&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
>     
> https://svnweb.freebsd.org/base/head/lib/libc/gen/errlst.c?revision=275004&view=markup#l59
>     https://msdn.microsoft.com/en-us/library/5814770t.aspx
> 
> Signed-off-by: YAMAMOTO Takashi <[email protected]>

It seems likely that new platforms could have their own
representations too.  I think it's safe enough here to just ignore the
error strings entirely.  What do you think of this, then?

--8<--------------------------cut here-------------------------->8--

From: Ben Pfaff <[email protected]>
Date: Mon, 20 Apr 2015 12:11:23 -0700
Subject: [PATCH] dpctl.at: Ignore string representation of error messages in
 output.

Different C libraries represent the same error code (particularly ENODEV)
differently.  This caused spurious test failures on BSD.  This commit
avoids the problem by ignoring the error string representations entirely.

Reported-by: YAMAMOTO Takashi <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
---
 tests/dpctl.at |   23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/tests/dpctl.at b/tests/dpctl.at
index 7921d03..417682a 100644
--- a/tests/dpctl.at
+++ b/tests/dpctl.at
@@ -8,8 +8,9 @@ AT_CHECK([ovs-appctl dpctl/add-dp dummy@br0], [2], [],
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
 AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0])
-AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0], [2], [],
-  [ovs-vswitchd: opening datapath (No such device)
+AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0], [2], [], [stderr])
+AT_CHECK([sed 's/(.*)/(...)/' stderr], [0], [dnl
+ovs-vswitchd: opening datapath (...)
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
 OVS_VSWITCHD_STOP
@@ -33,7 +34,9 @@ dummy@br0:
        port 5: vif1.0 (tap)
 ])
 AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=tap], [2], [],
-  [ovs-vswitchd: adding vif1.0 to dummy@br0 failed (File exists)
+  [stderr])
+AT_CHECK([sed 's/(.*)/(...)/' stderr], [0],
+  [ovs-vswitchd: adding vif1.0 to dummy@br0 failed (...)
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
 AT_CHECK([ovs-appctl dpctl/set-if dummy@br0 vif1.0,port_no=5])
@@ -66,15 +69,17 @@ AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 nonexistent], 
[2], [],
   [ovs-vswitchd: no port named nonexistent
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
-AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 br0], [2], [],
-  [ovs-vswitchd: deleting port br0 from dummy@br0 failed (Invalid argument)
+AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 br0], [2], [], [stderr])
+AT_CHECK([sed 's/(.*)/(...)/' stderr], [0],
+  [ovs-vswitchd: deleting port br0 from dummy@br0 failed (...)
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
 AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0])
-AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 br0], [2], [],
-  [ovs-vswitchd: opening datapath (No such device)
+AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 br0], [2], [], [stderr])
+AT_CHECK([sed 's/(.*)/(...)/' stderr], [0],
+  [ovs-vswitchd: opening datapath (...)
 ovs-appctl: ovs-vswitchd: server returned an error
 ])
-OVS_VSWITCHD_STOP(["/dummy@br0: port_del failed (Invalid argument)/d
-/dummy@br0: failed to add vif1.0 as port: File exists/d"])
+OVS_VSWITCHD_STOP(["/dummy@br0: port_del failed/d
+/dummy@br0: failed to add vif1.0 as port/d"])
 AT_CLEANUP
-- 
1.7.10.4

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to