summaryrefslogtreecommitdiffstats
path: root/generic/tclTest.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2020-04-21 15:41:01 (GMT)
committerdgp <dgp@users.sourceforge.net>2020-04-21 15:41:01 (GMT)
commitd48bca33242b3f10d21a25a6c6a91c27ae707b96 (patch)
treef643aff8fc7c51311e7956adf843118d31381d05 /generic/tclTest.c
parent941ef44a3fce68b1dc81abb397a80f209b2ca982 (diff)
downloadtcl-d48bca33242b3f10d21a25a6c6a91c27ae707b96.zip
tcl-d48bca33242b3f10d21a25a6c6a91c27ae707b96.tar.gz
tcl-d48bca33242b3f10d21a25a6c6a91c27ae707b96.tar.bz2
Move testing command [testsize] from Windows to generic.
Extend it to report sizeof(Tcl_UniChar).
Diffstat (limited to 'generic/tclTest.c')
-rw-r--r--generic/tclTest.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/generic/tclTest.c b/generic/tclTest.c
index 8c29aa7..b9fd204 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -281,6 +281,7 @@ static Tcl_CmdProc Testset2Cmd;
static Tcl_CmdProc TestseterrorcodeCmd;
static Tcl_ObjCmdProc TestsetobjerrorcodeCmd;
static Tcl_CmdProc TestsetplatformCmd;
+static Tcl_ObjCmdProc TestsizeCmd;
static Tcl_CmdProc TeststaticpkgCmd;
static Tcl_CmdProc TesttranslatefilenameCmd;
static Tcl_CmdProc TestupvarCmd;
@@ -592,6 +593,7 @@ Tcltest_Init(
TestFindLastCmd, NULL, NULL);
Tcl_CreateCommand(interp, "testsetplatform", TestsetplatformCmd,
NULL, NULL);
+ Tcl_CreateObjCommand(interp, "testsize", TestsizeCmd, NULL, NULL);
Tcl_CreateCommand(interp, "teststaticpkg", TeststaticpkgCmd,
NULL, NULL);
Tcl_CreateCommand(interp, "testtranslatefilename",
@@ -4122,6 +4124,35 @@ TestsetplatformCmd(
return TCL_OK;
}
+static int
+TestsizeCmd(
+ ClientData clientData, /* Unused */
+ Tcl_Interp* interp, /* Tcl interpreter */
+ int objc, /* Parameter count */
+ Tcl_Obj *const * objv) /* Parameter vector */
+{
+ if (objc != 2) {
+ goto syntax;
+ }
+ if (strcmp(Tcl_GetString(objv[1]), "time_t") == 0) {
+ Tcl_SetObjResult(interp, Tcl_NewWideIntObj(sizeof(time_t)));
+ return TCL_OK;
+ }
+ if (strcmp(Tcl_GetString(objv[1]), "st_mtime") == 0) {
+ Tcl_StatBuf *statPtr;
+ Tcl_SetObjResult(interp, Tcl_NewWideIntObj(sizeof(statPtr->st_mtime)));
+ return TCL_OK;
+ }
+ if (strcmp(Tcl_GetString(objv[1]), "unichar") == 0) {
+ Tcl_SetObjResult(interp, Tcl_NewWideIntObj(sizeof(Tcl_UniChar)));
+ return TCL_OK;
+ }
+
+syntax:
+ Tcl_WrongNumArgs(interp, 1, objv, "time_t|st_mtime|unichar");
+ return TCL_ERROR;
+}
+
/*
*----------------------------------------------------------------------
*