From patchwork Wed Mar 26 22:30:44 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Willmann X-Patchwork-Id: 334122 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ganesha.gnumonks.org (ganesha.gnumonks.org [IPv6:2001:780:45:1d:225:90ff:fe52:c662]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 84F6F14008A for ; Thu, 27 Mar 2014 09:32:22 +1100 (EST) Received: from localhost ([127.0.0.1] helo=ganesha.gnumonks.org) by ganesha.gnumonks.org with esmtp (Exim 4.72) (envelope-from ) id 1WSwMk-00021g-TF; Wed, 26 Mar 2014 23:32:11 +0100 Received: from isonoe.totalueberwachung.de ([2a01:198:210:100::1]) by ganesha.gnumonks.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1WSwLl-0001zy-3p for openbsc@lists.osmocom.org; Wed, 26 Mar 2014 23:31:11 +0100 Received: from adrastea.totalueberwachung.de (p5099b351.dip0.t-ipconnect.de [80.153.179.81]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by isonoe.totalueberwachung.de (Postfix) with ESMTPSA id 9A44060052; Wed, 26 Mar 2014 23:31:08 +0100 (CET) Received: by adrastea.totalueberwachung.de (Postfix, from userid 1000) id 2F784220BC; Wed, 26 Mar 2014 23:31:06 +0100 (CET) From: Daniel Willmann To: OpenBSC Mailing List Subject: [PATCH 1/4] sms_test: Test that gsm340_scts(gsm340_gen_scts(time) == time Date: Wed, 26 Mar 2014 23:30:44 +0100 Message-Id: <64c11ccd40489136537a1d3e804c18e0d66440f4.1395872056.git.daniel@totalueberwachung.de> X-Mailer: git-send-email 1.8.4.2 In-Reply-To: <1395873047-28229-1-git-send-email-dwillmann@sysmocom.de> References: <1395873047-28229-1-git-send-email-dwillmann@sysmocom.de> X-Spam-Score: -0.0 (/) Cc: Daniel Willmann X-BeenThere: openbsc@lists.osmocom.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development of the OpenBSC GSM base station controller List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: openbsc-bounces@lists.osmocom.org Errors-To: openbsc-bounces@lists.osmocom.org gsm340_scts() needs to be the inverse of gsm340_gen_scts() Test different timezones and iterate through a whole year (2013) in 30 min steps. Record the current test result --- tests/sms/sms_test.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ tests/sms/sms_test.ok | 20 +++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/tests/sms/sms_test.c b/tests/sms/sms_test.c index cdd4158..8b19760 100644 --- a/tests/sms/sms_test.c +++ b/tests/sms/sms_test.c @@ -268,6 +268,64 @@ static void test_gen_oa(void) printf("Result: len(%d) data(%s)\n", len, osmo_hexdump(oa, len)); } +const char *tz_list[] = { + "UTC", + "Europe/London", + "Europe/Berlin", + "Europe/Athens", + "Europe/Moscow", + "Canada/Central", + "America/New_York", + "America/Los_Angeles", + NULL +}; + +static int test_scts_id_one_tz(void) +{ + uint8_t scts[7]; + time_t ts, ts_res, start_ts, end_ts; + + /* 2013-01-01 00:00:00 - 2014-01-01 01:00:00 increment in 30min steps */ + start_ts = 1356998400; + end_ts = 1388538000; + for (ts = start_ts; ts <= end_ts; ts += 1800) { + memset(scts, 0, sizeof(scts)); + gsm340_gen_scts(scts, ts); + ts_res = gsm340_scts(scts); + + if (ts_res != ts) { + printf("%li -> %s -> %li\n", ts, + osmo_hexdump_nospc(scts, sizeof(scts)), ts_res); + return ts; + } + } + return 0; +} + +static void test_scts_id(void) +{ + int i; + time_t ts; + const char *tz; + char *old_tz = getenv("TZ"); + + for (i = 0; ;i++) { + tz = tz_list[i]; + if (!tz) + break; + + printf("Testing gsm340_scts(gsm340_gen_scts(ts)) == ts " + "for TZ %s\n", tz); + setenv("TZ", tz, 1); + tzset(); + + ts = test_scts_id_one_tz(); + if (ts) + printf("Timezone %s failed at ts %li\n", tz, ts); + } + setenv("TZ", old_tz, 1); +} + int main(int argc, char** argv) { printf("SMS testing\n"); @@ -414,6 +472,7 @@ int main(int argc, char** argv) test_octet_return(); test_gen_oa(); + test_scts_id(); printf("OK\n"); return 0; diff --git a/tests/sms/sms_test.ok b/tests/sms/sms_test.ok index fa536ea..a3d816c 100644 --- a/tests/sms/sms_test.ok +++ b/tests/sms/sms_test.ok @@ -26,4 +26,24 @@ Result: len(12) data(14 a1 21 43 65 87 09 21 43 65 87 19 ) Result: len(2) data(00 91 ) Result: len(9) data(0e d0 4f 78 d9 2d 9c 0e 01 ) Result: len(12) data(14 d0 4f 78 d9 2d 9c 0e c3 e2 31 19 ) +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ UTC +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ Europe/London +1364691600 -> 31301310000000 -> 1364695200 +Timezone Europe/London failed at ts 1364691600 +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ Europe/Berlin +1364695200 -> 31301320000000 -> 1364698800 +Timezone Europe/Berlin failed at ts 1364695200 +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ Europe/Athens +1364698800 -> 31301330000000 -> 1364702400 +Timezone Europe/Athens failed at ts 1364698800 +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ Europe/Moscow +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ Canada/Central +1362880800 -> 31300120000000 -> 1362884400 +Timezone Canada/Central failed at ts 1362880800 +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ America/New_York +1362880800 -> 31300120000000 -> 1362884400 +Timezone America/New_York failed at ts 1362880800 +Testing gsm340_scts(gsm340_gen_scts(ts)) == ts for TZ America/Los_Angeles +1362880800 -> 31300120000000 -> 1362884400 +Timezone America/Los_Angeles failed at ts 1362880800 OK