add aliases == and [[ for = and [ to support more bash scripts
diff --git a/coreutils/test.c b/coreutils/test.c
index 8fa6d16..cec3c47 100644
--- a/coreutils/test.c
+++ b/coreutils/test.c
@@ -51,7 +51,7 @@
 	unary-operator ::= "-r"|"-w"|"-x"|"-f"|"-d"|"-c"|"-b"|"-p"|
 		"-u"|"-g"|"-k"|"-s"|"-t"|"-z"|"-n"|"-o"|"-O"|"-G"|"-L"|"-S";
 
-	binary-operator ::= "="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"|
+	binary-operator ::= "="|"=="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"|
 			"-nt"|"-ot"|"-ef";
 	operand ::= <any legal UNIX file name>
 */
@@ -135,6 +135,7 @@
 	"-L", FILSYM, UNOP}, {
 	"-S", FILSOCK, UNOP}, {
 	"=", STREQ, BINOP}, {
+	"==", STREQ, BINOP}, {
 	"!=", STRNE, BINOP}, {
 	"<", STRLT, BINOP}, {
 	">", STRGT, BINOP}, {
@@ -191,6 +192,11 @@
 			bb_error_msg_and_die("missing ]");
 		argv[argc] = NULL;
 	}
+	if (strcmp(bb_applet_name, "[[") == 0) {
+		if (strcmp(argv[--argc], "]]"))
+			bb_error_msg_and_die("missing ]]");
+		argv[argc] = NULL;
+	}
 	/* Implement special cases from POSIX.2, section 4.62.4 */
 	switch (argc) {
 	case 1: