Accepting request 848952 from network
OBS-URL: https://build.opensuse.org/request/show/848952 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/bird?expand=0&rev=7
This commit is contained in:
commit
32feaf744f
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 16 12:45:29 UTC 2020 - Mark Stopka <mstopka@opensuse.org>
|
||||||
|
|
||||||
|
- Add patch to fix test on Big Endian architectures
|
||||||
|
* fix_test_for_bigendian_arch.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Sep 11 07:16:11 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
Fri Sep 11 07:16:11 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ Source: ftp://bird.network.cz/pub/bird/bird-%{version}.tar.gz
|
|||||||
Source1: bird.service
|
Source1: bird.service
|
||||||
Source3: bird.tmpfiles.d
|
Source3: bird.tmpfiles.d
|
||||||
Patch0: gcc10.patch
|
Patch0: gcc10.patch
|
||||||
|
Patch1: fix_test_for_bigendian_arch.patch
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: flex
|
BuildRequires: flex
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
@ -66,6 +67,7 @@ This package holds the HTML documentation.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="${RPM_OPT_FLAGS} -fpic -DPIC -fno-strict-aliasing -Wno-parentheses -Wno-pointer-sign"
|
export CFLAGS="${RPM_OPT_FLAGS} -fpic -DPIC -fno-strict-aliasing -Wno-parentheses -Wno-pointer-sign"
|
||||||
|
74
fix_test_for_bigendian_arch.patch
Normal file
74
fix_test_for_bigendian_arch.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
diff --git a/lib/fletcher16_test.c b/lib/fletcher16_test.c
|
||||||
|
index 1020e6ecc8cac116dd45710ff7993f2e8641d694..3cd4c302f19700d32b0d3e68d5137b4409bfe976 100644
|
||||||
|
--- a/lib/fletcher16_test.c
|
||||||
|
+++ b/lib/fletcher16_test.c
|
||||||
|
@@ -24,24 +24,33 @@ straightforward_fletcher16_compute(const char *data)
|
||||||
|
sum2 = (sum2 + sum1) % 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
- return (sum2 << 8) | sum1;
|
||||||
|
+ sum2 = (sum2 + sum1) % 255;
|
||||||
|
+ sum2 = (sum2 + sum1) % 255;
|
||||||
|
+
|
||||||
|
+ return (sum1 << 8) | sum2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static u16
|
||||||
|
straightforward_fletcher16_checksum(const char *data)
|
||||||
|
{
|
||||||
|
u16 csum;
|
||||||
|
- u8 c0,c1,f0,f1;
|
||||||
|
+ u16 c0,c1,x,y;
|
||||||
|
|
||||||
|
csum = straightforward_fletcher16_compute(data);
|
||||||
|
- f0 = csum & 0xff;
|
||||||
|
- f1 = (csum >> 8) & 0xff;
|
||||||
|
- c0 = 0xff - ((f0 + f1) % 0xff);
|
||||||
|
- c1 = 0xff - ((f0 + c0) % 0xff);
|
||||||
|
+ c0 = (csum >> 8) & 0xff;
|
||||||
|
+ c1 = csum & 0xff;
|
||||||
|
+
|
||||||
|
+ x = (255 + c0 - c1) % 255;
|
||||||
|
+ y = (510 - 2*c0 + c1) % 255;
|
||||||
|
|
||||||
|
- return (c1 << 8) | c0;
|
||||||
|
+ if (!x) x = 255;
|
||||||
|
+ if (!y) y = 255;
|
||||||
|
+
|
||||||
|
+ return (x << 8) | y;
|
||||||
|
}
|
||||||
|
|
||||||
|
+const u8 zero16[2] = {};
|
||||||
|
+
|
||||||
|
static int
|
||||||
|
test_fletcher16(void *out_, const void *in_, const void *expected_out_)
|
||||||
|
{
|
||||||
|
@@ -53,7 +62,8 @@ test_fletcher16(void *out_, const void *in_, const void *expected_out_)
|
||||||
|
|
||||||
|
fletcher16_init(&ctxt);
|
||||||
|
fletcher16_update(&ctxt, in, strlen(in));
|
||||||
|
- put_u16(out, fletcher16_compute(&ctxt));
|
||||||
|
+ fletcher16_update(&ctxt, zero16, 2);
|
||||||
|
+ *out = fletcher16_compute(&ctxt);
|
||||||
|
|
||||||
|
return *out == *expected_out;
|
||||||
|
}
|
||||||
|
@@ -70,7 +80,8 @@ test_fletcher16_checksum(void *out_, const void *in_, const void *expected_out_)
|
||||||
|
|
||||||
|
fletcher16_init(&ctxt);
|
||||||
|
fletcher16_update(&ctxt, in, len);
|
||||||
|
- put_u16(out, fletcher16_final(&ctxt, len, len));
|
||||||
|
+ fletcher16_update(&ctxt, zero16, 2);
|
||||||
|
+ *out = fletcher16_final(&ctxt, len+2, len);
|
||||||
|
|
||||||
|
return *out == *expected_out;
|
||||||
|
}
|
||||||
|
@@ -81,7 +92,7 @@ t_fletcher16_compute(void)
|
||||||
|
struct bt_pair test_vectors[] = {
|
||||||
|
{
|
||||||
|
.in = "\001\002",
|
||||||
|
- .out = & (const u16) { 0x0403 },
|
||||||
|
+ .out = & ((const u16) { straightforward_fletcher16_compute("\001\002") }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.in = "",
|
Loading…
Reference in New Issue
Block a user