Skip to content
Snippets Groups Projects
Commit def7bd6c authored by Daniel Salzman's avatar Daniel Salzman
Browse files

tests: add test for endian operations

parent bb69f66c
No related branches found
No related tags found
No related merge requests found
Doxyfile
KNOWN_ISSUES
Makefile.am
README
configure.ac
doc/Makefile.am
doc/configuration.rst
doc/index.rst
doc/installation.rst
doc/introduction.rst
doc/Makefile.am
doc/migration.rst
doc/reference.rst
doc/requirements.rst
doc/running.rst
doc/troubleshooting.rst
libtap/Makefile.am
libtap/runtests.c
libtap/tap/basic.c
libtap/tap/basic.h
libtap/tap/float.c
libtap/tap/float.h
libtap/tap/macros.h
libtap/Makefile.am
libtap/runtests.c
man/Makefile.am
patches/Makefile.am
samples/Makefile.am
src/common/namedb/namedb.h
src/common/namedb/namedb_lmdb.c
src/common/namedb/namedb_lmdb.h
src/common/namedb/namedb_trie.c
src/common/namedb/namedb_trie.h
src/common/trie/hat-trie.c
src/common/trie/hat-trie.h
src/common/trie/murmurhash3.c
src/common/trie/murmurhash3.h
src/Makefile.am
src/common-knot/crc.h
src/common-knot/evsched.c
src/common-knot/evsched.h
src/common-knot/fdset.c
src/common-knot/fdset.h
src/common-knot/heap.c
src/common-knot/heap.h
src/common-knot/hex.c
src/common-knot/hex.h
src/common-knot/ref.c
src/common-knot/ref.h
src/common-knot/strlcat.c
src/common-knot/strlcat.h
src/common-knot/strtonum.h
src/common-knot/trim.h
src/common/array-sort.h
src/common/base32hex.c
src/common/base32hex.h
......@@ -51,6 +63,11 @@ src/common/mempattern.c
src/common/mempattern.h
src/common/mempool.c
src/common/mempool.h
src/common/namedb/namedb.h
src/common/namedb/namedb_lmdb.c
src/common/namedb/namedb_lmdb.h
src/common/namedb/namedb_trie.c
src/common/namedb/namedb_trie.h
src/common/net.c
src/common/net.h
src/common/print.c
......@@ -59,26 +76,15 @@ src/common/sockaddr.c
src/common/sockaddr.h
src/common/strlcpy.c
src/common/strlcpy.h
src/common-knot/crc.h
src/common-knot/evsched.c
src/common-knot/evsched.h
src/common-knot/fdset.c
src/common-knot/fdset.h
src/common-knot/heap.c
src/common-knot/heap.h
src/common-knot/hex.c
src/common-knot/hex.h
src/common-knot/ref.c
src/common-knot/ref.h
src/common-knot/strlcat.c
src/common-knot/strlcat.h
src/common-knot/strtonum.h
src/common-knot/trim.h
src/common/trie/hat-trie.c
src/common/trie/hat-trie.h
src/common/trie/murmurhash3.c
src/common/trie/murmurhash3.h
src/dnstap/Makefile.am
src/dnstap/convert.c
src/dnstap/convert.h
src/dnstap/dnstap.c
src/dnstap/dnstap.h
src/dnstap/Makefile.am
src/dnstap/message.c
src/dnstap/message.h
src/dnstap/reader.c
......@@ -112,6 +118,8 @@ src/knot/dnssec/zone-nsec.c
src/knot/dnssec/zone-nsec.h
src/knot/dnssec/zone-sign.c
src/knot/dnssec/zone-sign.h
src/knot/knot.h
src/knot/main.c
src/knot/modules/dnstap.c
src/knot/modules/dnstap.h
src/knot/modules/synth_record.c
......@@ -169,14 +177,14 @@ src/knot/worker/pool.c
src/knot/worker/pool.h
src/knot/worker/queue.c
src/knot/worker/queue.h
src/knot/zone/contents.c
src/knot/zone/contents.h
src/knot/zone/events/events.c
src/knot/zone/events/events.h
src/knot/zone/events/handlers.c
src/knot/zone/events/handlers.h
src/knot/zone/events/replan.c
src/knot/zone/events/replan.h
src/knot/zone/contents.c
src/knot/zone/contents.h
src/knot/zone/node.c
src/knot/zone/node.h
src/knot/zone/semantic-check.c
......@@ -199,8 +207,14 @@ src/knot/zone/zonedb.c
src/knot/zone/zonedb.h
src/knot/zone/zonefile.c
src/knot/zone/zonefile.h
src/knot/knot.h
src/knot/main.c
src/libknot/binary.c
src/libknot/binary.h
src/libknot/consts.c
src/libknot/consts.h
src/libknot/descriptor.c
src/libknot/descriptor.h
src/libknot/dname.c
src/libknot/dname.h
src/libknot/dnssec/bitmap.h
src/libknot/dnssec/config.h
src/libknot/dnssec/crypto.c
......@@ -216,6 +230,9 @@ src/libknot/dnssec/sig0.c
src/libknot/dnssec/sig0.h
src/libknot/dnssec/sign.c
src/libknot/dnssec/sign.h
src/libknot/errcode.c
src/libknot/errcode.h
src/libknot/libknot.h
src/libknot/packet/compr.c
src/libknot/packet/compr.h
src/libknot/packet/pkt.c
......@@ -229,6 +246,14 @@ src/libknot/processing/overlay.c
src/libknot/processing/overlay.h
src/libknot/processing/requestor.c
src/libknot/processing/requestor.h
src/libknot/rdata.c
src/libknot/rdata.h
src/libknot/rdataset.c
src/libknot/rdataset.h
src/libknot/rrset-dump.c
src/libknot/rrset-dump.h
src/libknot/rrset.c
src/libknot/rrset.h
src/libknot/rrtype/aaaa.h
src/libknot/rrtype/dnskey.h
src/libknot/rrtype/naptr.h
......@@ -244,32 +269,13 @@ src/libknot/rrtype/rrsig.h
src/libknot/rrtype/soa.h
src/libknot/rrtype/tsig.c
src/libknot/rrtype/tsig.h
src/libknot/tsig-op.c
src/libknot/tsig-op.h
src/libknot/util/endian.h
src/libknot/util/tolower.c
src/libknot/util/tolower.h
src/libknot/util/utils.c
src/libknot/util/utils.h
src/libknot/binary.c
src/libknot/binary.h
src/libknot/consts.c
src/libknot/consts.h
src/libknot/descriptor.c
src/libknot/descriptor.h
src/libknot/dname.c
src/libknot/dname.h
src/libknot/errcode.c
src/libknot/errcode.h
src/libknot/libknot.h
src/libknot/rdata.c
src/libknot/rdata.h
src/libknot/rdataset.c
src/libknot/rdataset.h
src/libknot/rrset-dump.c
src/libknot/rrset-dump.h
src/libknot/rrset.c
src/libknot/rrset.h
src/libknot/tsig-op.c
src/libknot/tsig-op.h
src/utils/common/exec.c
src/utils/common/exec.h
src/utils/common/msg.c
......@@ -296,20 +302,20 @@ src/utils/nsupdate/nsupdate_exec.h
src/utils/nsupdate/nsupdate_main.c
src/utils/nsupdate/nsupdate_params.c
src/utils/nsupdate/nsupdate_params.h
src/zscanner/tests/processing.c
src/zscanner/tests/processing.h
src/zscanner/tests/tests.c
src/zscanner/tests/tests.h
src/zscanner/tests/zscanner-tool.c
src/zscanner/Makefile.am
src/zscanner/error.c
src/zscanner/error.h
src/zscanner/functions.c
src/zscanner/functions.h
src/zscanner/Makefile.am
src/zscanner/scanner.h
src/zscanner/scanner.rl
src/zscanner/scanner_body.rl
src/Makefile.am
src/zscanner/tests/processing.c
src/zscanner/tests/processing.h
src/zscanner/tests/tests.c
src/zscanner/tests/tests.h
src/zscanner/tests/zscanner-tool.c
tests/Makefile.am
tests/acl.c
tests/base32hex.c
tests/base64.c
......@@ -323,12 +329,12 @@ tests/dnssec_sign.c
tests/dnssec_zone_nsec.c
tests/dthreads.c
tests/edns.c
tests/endian.c
tests/fake_server.h
tests/fdset.c
tests/hattrie.c
tests/hhash.c
tests/journal.c
tests/Makefile.am
tests/namedb.c
tests/node.c
tests/overlay.c
......@@ -352,8 +358,3 @@ tests/zone_timers.c
tests/zone_update.c
tests/zonedb.c
tests/ztree.c
configure.ac
Doxyfile
KNOWN_ISSUES
Makefile.am
README
......@@ -17,6 +17,7 @@ dnssec_sign
dnssec_zone_nsec
dthreads
edns
endian
fdset
hattrie
hhash
......
......@@ -22,6 +22,7 @@ check_PROGRAMS = \
dnssec_zone_nsec \
dthreads \
edns \
endian \
fdset \
hattrie \
hhash \
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <tap/basic.h>
#include "libknot/util/endian.h"
int main(int argc, char *argv[])
{
plan(12);
typedef union {
uint16_t value;
uint8_t array[2];
} trafo16_t;
const uint16_t host16 = 0x0102;
const trafo16_t be16 = { .array = { 0x01, 0x02 } };
const trafo16_t le16 = { .array = { 0x02, 0x01 } };
ok(htobe16(host16) == be16.value, "htobe16");
ok(htole16(host16) == le16.value, "htole16");
ok(be16toh(be16.value) == host16, "be16toh");
ok(le16toh(le16.value) == host16, "le16toh");
typedef union {
uint32_t value;
uint8_t array[4];
} trafo32_t;
const uint32_t host32 = 0x01020304;
const trafo32_t be32 = { .array = { 0x01, 0x02, 0x03, 0x04 } };
const trafo32_t le32 = { .array = { 0x04, 0x03, 0x02, 0x01 } };
ok(htobe32(host32) == be32.value, "htobe32");
ok(htole32(host32) == le32.value, "htole32");
ok(be32toh(be32.value) == host32, "be32toh");
ok(le32toh(le32.value) == host32, "le32toh");
typedef union {
uint64_t value;
uint8_t array[8];
} trafo64_t;
const uint64_t host64 = 0x0102030405060708;
const trafo64_t be64 = { .array = { 0x01, 0x02, 0x03, 0x04,
0x05, 0x06, 0x07, 0x08 } };
const trafo64_t le64 = { .array = { 0x08, 0x07, 0x06, 0x05,
0x04, 0x03, 0x02, 0x01 } };
ok(htobe64(host64) == be64.value, "htobe64");
ok(htole64(host64) == le64.value, "htole64");
ok(be64toh(be64.value) == host64, "be64toh");
ok(le64toh(le64.value) == host64, "le64toh");
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment