mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-20 22:27:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
1
nsprpub/lib/tests/.cvsignore
Normal file
1
nsprpub/lib/tests/.cvsignore
Normal file
|
|
@ -0,0 +1 @@
|
|||
Makefile
|
||||
178
nsprpub/lib/tests/Makefile.in
Normal file
178
nsprpub/lib/tests/Makefile.in
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#! gmake
|
||||
|
||||
MOD_DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(MOD_DEPTH)/config/autoconf.mk
|
||||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
CSRCS = \
|
||||
arena.c \
|
||||
base64t.c \
|
||||
getopt.c \
|
||||
string.c
|
||||
|
||||
ifeq (,$(filter-out WINCE WINNT OS2,$(OS_ARCH)))
|
||||
CSRCS += arena.c
|
||||
endif
|
||||
|
||||
ifeq (,$(filter-out WINCE WINNT OS2,$(OS_ARCH)))
|
||||
PROG_SUFFIX = .exe
|
||||
else
|
||||
PROG_SUFFIX =
|
||||
endif
|
||||
|
||||
PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=$(PROG_SUFFIX)))
|
||||
|
||||
TARGETS = $(PROGS) $(OBJS)
|
||||
|
||||
INCLUDES = -I$(dist_includedir)
|
||||
|
||||
# Setting the variables LDOPTS and LIBPR. We first initialize
|
||||
# them to the default values, then adjust them for some platforms.
|
||||
LDOPTS = -L$(dist_libdir)
|
||||
LIBPR = -lnspr$(MOD_MAJOR_VERSION)
|
||||
LIBPLC = -lplc$(MOD_MAJOR_VERSION)
|
||||
LIBPLDS = -lplds$(MOD_MAJOR_VERSION)
|
||||
|
||||
ifeq (,$(filter-out WINCE WINNT, $(OS_ARCH)))
|
||||
LDOPTS = -NOLOGO -DEBUG -INCREMENTAL:NO
|
||||
ifeq (,$(filter-out WIN95 WINCE WINMO, $(OS_TARGET)))
|
||||
LIBPR = $(dist_libdir)/nspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
LIBPLC= $(dist_libdir)/plc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
LIBPLDS= $(dist_libdir)/plds$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
else
|
||||
LIBPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
LIBPLC= $(dist_libdir)/libplc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
LIBPLDS= $(dist_libdir)/libplds$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
LDOPTS += -Zomf -Zlinker /PM:VIO
|
||||
endif
|
||||
|
||||
ifneq ($(OS_ARCH), WINNT)
|
||||
PWD = $(shell pwd)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), IRIX)
|
||||
LDOPTS += -rpath $(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), Linux)
|
||||
ifeq ($(OS_RELEASE), 1.2)
|
||||
EXTRA_LIBS = -ldl
|
||||
else
|
||||
LDOPTS += -Xlinker -rpath $(PWD)/$(dist_libdir)
|
||||
ifeq ($(USE_PTHREADS),1)
|
||||
EXTRA_LIBS = -lpthread
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq (,$(filter-out OpenBSD,$(OS_ARCH)))
|
||||
ifeq ($(USE_PTHREADS),1)
|
||||
EXTRA_LIBS = -lpthread
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), OSF1)
|
||||
LDOPTS += -rpath $(PWD)/$(dist_libdir) -lpthread
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), HP-UX)
|
||||
LDOPTS += -Wl,+s,+b,$(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
# AIX
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
LDOPTS += -blibpath:$(PWD)/$(dist_libdir):/usr/lib:/lib
|
||||
LIBPR = -lnspr$(MOD_MAJOR_VERSION)_shr
|
||||
LIBPLC = -lplc$(MOD_MAJOR_VERSION)_shr
|
||||
endif
|
||||
|
||||
# Solaris
|
||||
ifeq ($(OS_ARCH), SunOS)
|
||||
ifdef NS_USE_GCC
|
||||
LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir)
|
||||
else
|
||||
LDOPTS += -R $(PWD)/$(dist_libdir)
|
||||
endif
|
||||
|
||||
# SunOS 5.5 needs to link with -lpthread, even though we already
|
||||
# linked with this system library when we built libnspr.so.
|
||||
ifeq ($(OS_RELEASE), 5.5)
|
||||
ifdef USE_PTHREADS
|
||||
EXTRA_LIBS = -lpthread
|
||||
endif
|
||||
endif
|
||||
endif # SunOS
|
||||
|
||||
#####################################################
|
||||
#
|
||||
# The rules
|
||||
#
|
||||
#####################################################
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
AIX_PRE_4_2 = 0
|
||||
ifeq ($(OS_ARCH),AIX)
|
||||
ifneq ($(OS_RELEASE),4.2)
|
||||
ifneq ($(USE_PTHREADS), 1)
|
||||
#AIX_PRE_4_2 = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(AIX_PRE_4_2),1)
|
||||
|
||||
# AIX releases prior to 4.2 need a special two-step linking hack
|
||||
# in order to both override the system select() and be able to
|
||||
# get at the original system select().
|
||||
#
|
||||
# We use a pattern rule in ns/nspr20/config/rules.mk to generate
|
||||
# the .$(OBJ_SUFFIX) file from the .c source file, then do the
|
||||
# two-step linking hack below.
|
||||
|
||||
$(OBJDIR)/%: $(OBJDIR)/%.$(OBJ_SUFFIX)
|
||||
@$(MAKE_OBJDIR)
|
||||
rm -f $@ $(AIX_TMP)
|
||||
$(CC) $(AIX_LINK_OPTS) -o $(AIX_TMP) $< $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a
|
||||
$(CC) -o $@ $(AIX_TMP) $(AIX_WRAP)
|
||||
rm -f $(AIX_TMP)
|
||||
|
||||
else
|
||||
|
||||
# All platforms that are not AIX pre-4.2.
|
||||
|
||||
$(OBJDIR)/%$(PROG_SUFFIX): $(OBJDIR)/%.$(OBJ_SUFFIX)
|
||||
@$(MAKE_OBJDIR)
|
||||
|
||||
ifeq ($(OS_ARCH), WINNT)
|
||||
link $(LDOPTS) $< $(LIBPLC) $(LIBPLDS) $(LIBPR) ws2_32.lib -out:$@
|
||||
else
|
||||
ifeq ($(OS_ARCH), WINCE)
|
||||
$(LD) $(LDOPTS) $< $(LIBPLC) $(LIBPLDS) $(LIBPR) ws2.lib -out:$@
|
||||
else
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
$(LINK) $(EXEFLAGS) $(LDOPTS) $< $(LIBPLC) $(LIBPLDS) $(LIBPR) $(OS_LIBS) $(EXTRA_LIBS)
|
||||
else
|
||||
$(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPLDS) $(LIBPR) $(EXTRA_LIBS) -o $@
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
export:: $(TARGETS)
|
||||
clean::
|
||||
rm -f $(TARGETS)
|
||||
369
nsprpub/lib/tests/arena.c
Normal file
369
nsprpub/lib/tests/arena.c
Normal file
|
|
@ -0,0 +1,369 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/*
|
||||
** File: arena.c
|
||||
** Description: Testing arenas
|
||||
**
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <stdlib.h>
|
||||
#include "nspr.h"
|
||||
#include "plarena.h"
|
||||
#include "plgetopt.h"
|
||||
|
||||
PRLogModuleInfo *tLM;
|
||||
PRIntn threadCount = 0;
|
||||
PRMonitor *tMon;
|
||||
PRBool failed_already = PR_FALSE;
|
||||
|
||||
/* Arguments from the command line with default values */
|
||||
PRIntn debug_mode = 0;
|
||||
PRIntn poolMin = 4096;
|
||||
PRIntn poolMax = (100 * 4096);
|
||||
PRIntn arenaMin = 40;
|
||||
PRIntn arenaMax = (100 * 40);
|
||||
PRIntn stressIterations = 15;
|
||||
PRIntn maxAlloc = (1024 * 1024);
|
||||
PRIntn stressThreads = 4;
|
||||
|
||||
void DumpAll( void )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
** Test Arena allocation.
|
||||
*/
|
||||
static void ArenaAllocate( void )
|
||||
{
|
||||
PLArenaPool ap;
|
||||
void *ptr;
|
||||
PRInt32 i;
|
||||
|
||||
PL_InitArenaPool( &ap, "AllocArena", 2048, sizeof(double));
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("AA, InitPool -- Pool: %p. first: %p, current: %p, size: %d",
|
||||
&ap, ap.first, ap.current, ap.arenasize ));
|
||||
|
||||
for( i = 0; i < 150; i++ )
|
||||
{
|
||||
PL_ARENA_ALLOCATE( ptr, &ap, 512 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,("AA, after alloc -- Pool: %p. first: %p, current: %p, size: %d",
|
||||
&ap, ap.first, ap.current, ap.arenasize ));
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,(
|
||||
"AA -- Pool: %p. alloc: %p ", &ap, ptr ));
|
||||
}
|
||||
|
||||
PL_FreeArenaPool( &ap );
|
||||
|
||||
for( i = 0; i < 221; i++ )
|
||||
{
|
||||
PL_ARENA_ALLOCATE( ptr, &ap, 512 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,("AA, after alloc -- Pool: %p. first: %p, current: %p, size: %d",
|
||||
&ap, ap.first, ap.current, ap.arenasize ));
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,(
|
||||
"AA -- Pool: %p. alloc: %p ", &ap, ptr ));
|
||||
}
|
||||
|
||||
PL_FreeArenaPool( &ap );
|
||||
|
||||
return;
|
||||
} /* end ArenaGrow() */
|
||||
/*
|
||||
** Test Arena grow.
|
||||
*/
|
||||
static void ArenaGrow( void )
|
||||
{
|
||||
PLArenaPool ap;
|
||||
void *ptr;
|
||||
PRInt32 i;
|
||||
|
||||
PL_InitArenaPool( &ap, "TheArena", 4096, sizeof(double));
|
||||
PL_ARENA_ALLOCATE( ptr, &ap, 512 );
|
||||
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("Before growth -- Pool: %p. alloc: %p ", &ap, ptr ));
|
||||
|
||||
for( i = 0; i < 10; i++ )
|
||||
{
|
||||
PL_ARENA_GROW( ptr, &ap, 512, 7000 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("After growth -- Pool: %p. alloc: %p ", &ap, ptr ));
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
} /* end ArenaGrow() */
|
||||
|
||||
|
||||
/*
|
||||
** Test arena Mark and Release.
|
||||
*/
|
||||
static void MarkAndRelease( void )
|
||||
{
|
||||
PLArenaPool ap;
|
||||
void *ptr = NULL;
|
||||
void *mark0, *mark1;
|
||||
PRIntn i;
|
||||
|
||||
PL_InitArenaPool( &ap, "TheArena", 4096, sizeof(double));
|
||||
mark0 = PL_ARENA_MARK( &ap );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("mark0. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p, m0: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr, mark0 ));
|
||||
|
||||
for( i = 0; i < 201; i++ )
|
||||
{
|
||||
PL_ARENA_ALLOCATE( ptr, &ap, 512 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr ));
|
||||
}
|
||||
|
||||
mark1 = PL_ARENA_MARK( &ap );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("mark1. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p, m1: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr, mark1 ));
|
||||
|
||||
|
||||
for( i = 0; i < 225; i++ )
|
||||
{
|
||||
PL_ARENA_ALLOCATE( ptr, &ap, 512 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr ));
|
||||
}
|
||||
|
||||
PL_ARENA_RELEASE( &ap, mark1 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("Release-1: %p -- Pool: %p. first: %p, current: %p, size: %d",
|
||||
mark1, &ap, ap.first, ap.current, ap.arenasize ));
|
||||
|
||||
for( i = 0; i < 20; i++ )
|
||||
{
|
||||
PL_ARENA_ALLOCATE( ptr, &ap, 512 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("mr. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr ));
|
||||
}
|
||||
|
||||
PL_ARENA_RELEASE( &ap, mark1 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("Release-1. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr ));
|
||||
|
||||
PL_ARENA_RELEASE( &ap, mark0 );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("Release-0. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr ));
|
||||
|
||||
PL_FreeArenaPool( &ap );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("Free. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr ));
|
||||
|
||||
PL_FinishArenaPool( &ap );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG,
|
||||
("Finish. ap: %p, ap.f: %p, ap.c: %p, ap.siz: %d, alloc: %p",
|
||||
&ap, ap.first.next, ap.current, ap.arenasize, ptr ));
|
||||
|
||||
return;
|
||||
} /* end MarkAndRelease() */
|
||||
|
||||
/*
|
||||
** RandSize() returns a random number in the range
|
||||
** min..max, rounded to the next doubleword
|
||||
**
|
||||
*/
|
||||
static PRIntn RandSize( PRIntn min, PRIntn max )
|
||||
{
|
||||
PRIntn sz = (rand() % (max -min)) + min + sizeof(double);
|
||||
|
||||
sz &= ~sizeof(double)-1;
|
||||
|
||||
return(sz);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** StressThread()
|
||||
** A bunch of these beat on individual arenas
|
||||
** This tests the free_list protection.
|
||||
**
|
||||
*/
|
||||
static void PR_CALLBACK StressThread( void *arg )
|
||||
{
|
||||
PLArenaPool ap;
|
||||
PRIntn i;
|
||||
PRIntn sz;
|
||||
void *ptr;
|
||||
PRThread *tp = PR_GetCurrentThread();
|
||||
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("Stress Thread %p started\n", PR_GetCurrentThread()));
|
||||
PL_InitArenaPool( &ap, "TheArena", RandSize( poolMin, poolMax), sizeof(double));
|
||||
|
||||
for ( i = 0; i < stressIterations; i++ )
|
||||
{
|
||||
PRIntn allocated = 0;
|
||||
|
||||
while ( allocated < maxAlloc )
|
||||
{
|
||||
sz = RandSize( arenaMin, arenaMax );
|
||||
PL_ARENA_ALLOCATE( ptr, &ap, sz );
|
||||
if ( ptr == NULL )
|
||||
{
|
||||
PR_LOG( tLM, PR_LOG_ERROR, ("ARENA_ALLOCATE() returned NULL\n\tAllocated: %d\n", allocated));
|
||||
break;
|
||||
}
|
||||
allocated += sz;
|
||||
}
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("Stress thread %p finished one iteration\n", tp));
|
||||
PL_FreeArenaPool( &ap );
|
||||
}
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("Stress thread %p finished all iteration\n", tp));
|
||||
PL_FinishArenaPool( &ap );
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("Stress thread %p after FinishArenaPool()\n", tp));
|
||||
|
||||
/* That's all folks! let's quit */
|
||||
PR_EnterMonitor(tMon);
|
||||
threadCount--;
|
||||
PR_Notify(tMon);
|
||||
PR_ExitMonitor(tMon);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
** Stress()
|
||||
** Flog the hell out of arenas multi-threaded.
|
||||
** Do NOT pass an individual arena to another thread.
|
||||
**
|
||||
*/
|
||||
static void Stress( void )
|
||||
{
|
||||
PRThread *tt;
|
||||
PRIntn i;
|
||||
|
||||
tMon = PR_NewMonitor();
|
||||
|
||||
for ( i = 0 ; i < stressThreads ; i++ )
|
||||
{
|
||||
PR_EnterMonitor(tMon);
|
||||
tt = PR_CreateThread(PR_USER_THREAD,
|
||||
StressThread,
|
||||
NULL,
|
||||
PR_PRIORITY_NORMAL,
|
||||
PR_GLOBAL_THREAD,
|
||||
PR_UNJOINABLE_THREAD,
|
||||
0);
|
||||
threadCount++;
|
||||
PR_ExitMonitor(tMon);
|
||||
}
|
||||
|
||||
/* Wait for all threads to exit */
|
||||
PR_EnterMonitor(tMon);
|
||||
while ( threadCount != 0 )
|
||||
{
|
||||
PR_Wait(tMon, PR_INTERVAL_NO_TIMEOUT);
|
||||
}
|
||||
PR_ExitMonitor(tMon);
|
||||
PR_DestroyMonitor(tMon);
|
||||
|
||||
return;
|
||||
} /* end Stress() */
|
||||
|
||||
/*
|
||||
** EvaluateResults()
|
||||
** uses failed_already to display results and set program
|
||||
** exit code.
|
||||
*/
|
||||
static PRIntn EvaluateResults(void)
|
||||
{
|
||||
PRIntn rc = 0;
|
||||
|
||||
if ( failed_already == PR_TRUE )
|
||||
{
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("FAIL\n"));
|
||||
rc =1;
|
||||
}
|
||||
else
|
||||
{
|
||||
PR_LOG( tLM, PR_LOG_DEBUG, ("PASS\n"));
|
||||
}
|
||||
return(rc);
|
||||
} /* EvaluateResults() */
|
||||
|
||||
void Help( void )
|
||||
{
|
||||
printf("arena [options]\n");
|
||||
printf("where options are:\n");
|
||||
printf("-p <n> minimum size of an arena pool. Default(%d)\n", poolMin);
|
||||
printf("-P <n> maximum size of an arena pool. Default(%d)\n", poolMax);
|
||||
printf("-a <n> minimum size of an arena allocation. Default(%d)\n", arenaMin);
|
||||
printf("-A <n> maximum size of an arena allocation. Default(%d)\n", arenaMax);
|
||||
printf("-i <n> number of iterations in a stress thread. Default(%d)\n", stressIterations);
|
||||
printf("-s <n> maximum allocation for a single stress thread. Default(%d)\n", maxAlloc);
|
||||
printf("-t <n> number of stress threads. Default(%d)\n", stressThreads );
|
||||
printf("-d enable debug mode\n");
|
||||
printf("\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
PRIntn main(PRIntn argc, char *argv[])
|
||||
{
|
||||
PLOptStatus os;
|
||||
PLOptState *opt = PL_CreateOptState(argc, argv, "dhp:P:a:A:i:s:t:");
|
||||
while (PL_OPT_EOL != (os = PL_GetNextOpt(opt)))
|
||||
{
|
||||
if (PL_OPT_BAD == os) continue;
|
||||
switch (opt->option)
|
||||
{
|
||||
case 'a': /* arena Min size */
|
||||
arenaMin = atol( opt->value );
|
||||
break;
|
||||
case 'A': /* arena Max size */
|
||||
arenaMax = atol( opt->value );
|
||||
break;
|
||||
case 'p': /* pool Min size */
|
||||
poolMin = atol( opt->value );
|
||||
break;
|
||||
case 'P': /* pool Max size */
|
||||
poolMax = atol( opt->value );
|
||||
break;
|
||||
case 'i': /* Iterations in stress tests */
|
||||
stressIterations = atol( opt->value );
|
||||
break;
|
||||
case 's': /* storage to get per iteration */
|
||||
maxAlloc = atol( opt->value );
|
||||
break;
|
||||
case 't': /* Number of stress threads to create */
|
||||
stressThreads = atol( opt->value );
|
||||
break;
|
||||
case 'd': /* debug mode */
|
||||
debug_mode = 1;
|
||||
break;
|
||||
case 'h': /* help */
|
||||
default:
|
||||
Help();
|
||||
} /* end switch() */
|
||||
} /* end while() */
|
||||
PL_DestroyOptState(opt);
|
||||
|
||||
srand( (unsigned)time( NULL ) ); /* seed random number generator */
|
||||
tLM = PR_NewLogModule("testcase");
|
||||
|
||||
|
||||
#if 0
|
||||
ArenaAllocate();
|
||||
ArenaGrow();
|
||||
#endif
|
||||
|
||||
MarkAndRelease();
|
||||
|
||||
Stress();
|
||||
|
||||
return(EvaluateResults());
|
||||
} /* end main() */
|
||||
|
||||
/* arena.c */
|
||||
3015
nsprpub/lib/tests/base64t.c
Normal file
3015
nsprpub/lib/tests/base64t.c
Normal file
File diff suppressed because it is too large
Load diff
44
nsprpub/lib/tests/getopt.c
Normal file
44
nsprpub/lib/tests/getopt.c
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "nspr.h"
|
||||
#include "plgetopt.h"
|
||||
|
||||
|
||||
|
||||
static const PLLongOpt optArray[] = {
|
||||
{ "longa", 'a' , PR_TRUE },
|
||||
{ "longb", 'b' , PR_TRUE },
|
||||
{ "longc", 'c' , PR_FALSE },
|
||||
{ "longd", 'd' | 0x100, PR_TRUE },
|
||||
{ "longe", 'e' | 0x100, PR_FALSE },
|
||||
{ NULL, }
|
||||
};
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
PLOptState *opt;
|
||||
PLOptStatus ostat;
|
||||
|
||||
opt = PL_CreateLongOptState(argc, argv, "a:b:c", optArray);
|
||||
|
||||
while (PL_OPT_OK == (ostat = PL_GetNextOpt(opt))) {
|
||||
if (opt->option == 0 && opt->longOptIndex < 0)
|
||||
printf("Positional parameter: \"%s\"\n", opt->value);
|
||||
else
|
||||
printf("%s option: %x (\'%c\', index %d), argument: \"%s\"\n",
|
||||
(ostat == PL_OPT_BAD) ? "BAD" : "GOOD",
|
||||
opt->longOption, opt->option ? opt->option : ' ',
|
||||
opt->longOptIndex, opt->value);
|
||||
|
||||
}
|
||||
printf("last result was %s\n", (ostat == PL_OPT_BAD) ? "BAD" : "EOL");
|
||||
PL_DestroyOptState(opt);
|
||||
return 0;
|
||||
}
|
||||
3084
nsprpub/lib/tests/string.c
Normal file
3084
nsprpub/lib/tests/string.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue