From 2ba95606dd95f68d423942b51e0e5b8d3d9ec145 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani <mascellani@poisson.phc.unipi.it> Date: Mon, 30 May 2016 13:33:10 +0200 Subject: Support substituting expresions of type ${var:offset:length} --- tests/test_expr.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests') diff --git a/tests/test_expr.c b/tests/test_expr.c index 3f4e157..536341a 100644 --- a/tests/test_expr.c +++ b/tests/test_expr.c @@ -3,6 +3,7 @@ This file is part of the nss-pam-ldapd library. Copyright (C) 2009, 2011, 2012, 2013 Arthur de Jong + Copyright (c) 2016 Giovanni Mascellani This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -104,6 +105,21 @@ static void test_expr_parse(void) assertstreq(buffer, "foobar"); assert(expr_parse("${userPassword#{crypt\\}}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); assertstreq(buffer, "HASH"); + /* test ${var:offset:length} */ + assert(expr_parse("${test1:0:6}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); + assertstreq(buffer, "foobar"); + assert(expr_parse("${test1:0:10}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); + assertstreq(buffer, "foobar"); + assert(expr_parse("${test1:0:3}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); + assertstreq(buffer, "foo"); + assert(expr_parse("${test1:3:0}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); + assertstreq(buffer, ""); + assert(expr_parse("${test1:3:6}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); + assertstreq(buffer, "bar"); + assert(expr_parse("${test1:7:0}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); + assertstreq(buffer, ""); + assert(expr_parse("${test1:7:3}", buffer, sizeof(buffer), expanderfn, NULL) != NULL); + assertstreq(buffer, ""); /* these are errors */ assert(expr_parse("$&", buffer, sizeof(buffer), expanderfn, NULL) == NULL); assert(expr_parse("${a", buffer, sizeof(buffer), expanderfn, NULL) == NULL); -- cgit v1.2.3