Loading...
tests/wordexp.c Libc-1725.40.4 /dev/null
--- Libc/Libc-1725.40.4/tests/wordexp.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2024 Apple Inc. All rights reserved.
-*
-* @APPLE_LICENSE_HEADER_START@
-*
-* This file contains Original Code and/or Modifications of Original Code
-* as defined in and that are subject to the Apple Public Source License
-* Version 2.0 (the 'License'). You may not use this file except in
-* compliance with the License. Please obtain a copy of the License at
-* http://www.opensource.apple.com/apsl/ and read it before using this
-* file.
-*
-* The Original Code and all software distributed under the License are
-* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
-* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
-* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
-* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
-* Please see the License for the specific language governing rights and
-* limitations under the License.
-*
-* @APPLE_LICENSE_HEADER_END@
-*/
-
-#include <wordexp.h>
-#include <stdbool.h>
-#include <TargetConditionals.h>
-
-#include <darwintest.h>
-
-T_GLOBAL_META(T_META_RUN_CONCURRENTLY(true));
-
-#if !TARGET_OS_IPHONE
-static void check(const char *words, int expected_res, const char *expected_word,
-				  const char *label)
-{
-	wordexp_t we;
-	int res = wordexp(words, &we, WRDE_NOCMD | WRDE_SHOWERR);
-	T_EXPECT_EQ(res, expected_res, "%s: error code | input: %s |", label, words);
-	if (res == 0 && expected_res == 0) {
-		T_EXPECT_EQ(we.we_wordc, (size_t)1,
-					"%s: we_wordc | input: %s |", label, words);
-		if (we.we_wordc == 1) {
-			T_EXPECT_EQ_STR(we.we_wordv[0], expected_word,
-							"%s: we_wordv[0] | input: %s |", label, words);
-		}
-	}
-	if (res == 0) {
-		wordfree(&we);
-	}
-}
-#endif
-
-T_DECL(wordexp_backtick,
-	   "Check that wordexp blocks backtick only when it should")
-{
-#if TARGET_OS_IPHONE
-	T_SKIP("wordexp doesn't exist on this OS");
-#else /* !TARGET_OS_IPHONE */
-	check("`",               WRDE_CMDSUB, NULL,     "unquoted backtick");
-	check("\\`",             0,           "`",      "unquoted escaped backtick");
-	check("\\\\`",           WRDE_CMDSUB, NULL,     "unquoted escaped backslash + backtick");
-	check("'`'",             0,           "`",      "single quoted backtick");
-	check("\"`\"",           WRDE_CMDSUB, NULL,     "double quoted backtick");
-	check("\"\\`\"",         0,           "`",      "double quoted escaped backtick");
-	check("'`",              WRDE_SYNTAX, NULL,     "single quoted backtick w/o ending quote");
-
-	check("\\`$(oh no) # `", WRDE_CMDSUB, NULL,     "previously exploitable");
-
-	check("$(foo)",          WRDE_CMDSUB, NULL,     "unquoted $()");
-	check("\\$\\(foo\\)",    0,           "$(foo)", "unquoted escaped $()");
-	check("'$(foo)'",        0,           "$(foo)", "single quoted $()");
-	check("\"$(foo)\"",      WRDE_CMDSUB, NULL,     "double quoted $()");
-	check("\"\\$(foo)\"",    0,           "$(foo)", "double quoted escaped $()");
-
-#endif /* !TARGET_OS_IPHONE */
-}
-