aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
Commit message (Expand)AuthorAgeFilesLines
* base-files: Remove stale calls to start() in initscripts.John Crispin2014-07-261-2/+0
* base-files: strip quotes from the MAC address in macaddr_canonicalize()Gabor Juhos2014-07-141-0/+1
* base-files: adjust the default netfilter tcp established connection timeout a...Felix Fietkau2014-07-131-1/+1
* sysupgrade: Enable killing of all processes under upgradedJohn Crispin2014-07-101-12/+27
* rc.common: when reloading a service using procd, fall back to calling start i...Felix Fietkau2014-07-031-1/+1
* base-files: fix ramfs / nand upgradeJohn Crispin2014-07-011-1/+1
* base-files: define yes/no as valid boolean optionsLuka Perkov2014-06-291-2/+2
* base-files: add enabled config option for ntp serviceJohn Crispin2014-06-272-1/+2
* base-files: add a post start hook to the procd init.d apiJohn Crispin2014-06-261-0/+3
* base-files: update copyright headersLuka Perkov2014-06-241-1/+1
* base-files: regenerate the /lib64 symlink when switching to a ramdiskJohn Crispin2014-06-201-0/+2
* base-files: depend on jsonfilter and rewrite network.sh to use itJo-Philipp Wich2014-06-192-321/+128
* base-files: add upgraded to the list of daemons not killedJohn Crispin2014-06-191-1/+1
* procd: various cleanups to /lib/upgrade/nand.shJohn Crispin2014-06-161-1/+1
* base-files: properly remove stderr from zcat/bzcatJohn Crispin2014-06-111-2/+2
* base-files: add an ugly hack for nand to sysupgradeJohn Crispin2014-06-111-0/+2
* base-files: include more ubi* tools in sysupgrade ramdiskJohn Crispin2014-06-111-1/+4
* base-files: fix argument order to date in sysfixtime so that it also works wi...Felix Fietkau2014-06-071-1/+1
* base-files: /etc/rc.button/power should be executableJohn Crispin2014-06-031-0/+0
* base-files: Allow installation of symlinks using RAMFS_COPY_BIN env var.John Crispin2014-06-021-1/+1
* base-files: remove function service_killJohn Crispin2014-06-021-23/+0
* base-files: add simple shutdown scriptJohn Crispin2014-06-021-0/+5
* base-files: calling stop_service before procd_kill.John Crispin2014-06-022-2/+2
* base-files: removes loggingJohn Crispin2014-06-021-3/+1
* base-files: enable force_link for lan by defaultFelix Fietkau2014-05-161-0/+1
* base-files: remove duplicate stop_service() function.Felix Fietkau2014-04-272-5/+1
* base-files: remove duplicate wps button handler (#15621)Felix Fietkau2014-04-181-6/+0
* base-files: add back missing function for find_mtd_part to /lib/functions.sh ...Felix Fietkau2014-04-082-7/+7
* base-files: the ubi tol should be installed when jumping to ram_fsJohn Crispin2014-04-071-0/+1
* base-files: make use of new fstoolsJohn Crispin2014-04-073-3/+4
* /lib/functions.sh: remove config_rename()Felix Fietkau2014-04-071-18/+0
* /lib/functions.sh: move rarely used mtd and macaddr related functions to /lib...Felix Fietkau2014-04-076-138/+123
* /lib/functions.sh: remove jffs2_mark_erase()Felix Fietkau2014-04-071-9/+0
* base-files: remove config_clear() and list_remove()Felix Fietkau2014-04-071-28/+0
* base-files: move uci_apply_defaults() to /etc/init.d/bootFelix Fietkau2014-04-072-12/+12
* /lib/functions.sh: remove hotplug_dev()Felix Fietkau2014-04-071-4/+0
* /lib/functions.sh: remove strtok()Felix Fietkau2014-04-071-26/+0
* /lib/functions.sh: move preinit related functions to /lib/functions/preinit.shFelix Fietkau2014-04-073-85/+88
* /lib/functions.sh: remove pi_include()Felix Fietkau2014-04-071-24/+0
* /lib/functions.sh: remove jffs2_ready()Felix Fietkau2014-04-071-7/+0
* /lib/functions.sh: remove support for non-overlayfs overlay fopivot typesFelix Fietkau2014-04-071-44/+2
* ubi-utils: mini version of mtd-utils that only includes ubi toolsJohn Crispin2014-04-031-2/+9
* fstools: add the new fstools packageJohn Crispin2014-03-123-6/+4
* [base-files]: the root password should be empty for real, like beforeImre Kaloz2014-02-211-1/+1
* base-files: split /etc/init.d/boot into 2 filesJohn Crispin2014-02-182-32/+52
* base-files: expose taint flags in /etc/openwrt_releaseJo-Philipp Wich2014-01-312-1/+2
* Add sysfixtime init script, replacement of luci_fixtimeJo-Philipp Wich2014-01-291-0/+13
* [package] base-files: add ucidef_add_switch_port functionLuka Perkov2014-01-232-1/+11
* sysupgrade: do not kill any processes in failsafeJohn Crispin2014-01-172-4/+6
* base-files: fix mount-utils incompatibilityJohn Crispin2013-12-274-25/+25
pan>], WA_SIZE, chThdGetPriority()+1, thread1, "B"); threads[2] = chThdCreateStatic(wa[2], WA_SIZE, chThdGetPriority()+3, thread1, "C"); threads[3] = chThdCreateStatic(wa[3], WA_SIZE, chThdGetPriority()+4, thread1, "D"); threads[4] = chThdCreateStatic(wa[4], WA_SIZE, chThdGetPriority()+2, thread1, "E"); chSemSignal(&sem1); chSemSignal(&sem1); chSemSignal(&sem1); chSemSignal(&sem1); chSemSignal(&sem1); test_wait_threads(); #if CH_USE_SEMAPHORES_PRIORITY test_assert_sequence(1, "ADCEB"); #else test_assert_sequence(1, "ABCDE"); #endif } /** * @page test_sem_002 Timeout test * * <h2>Description</h2> * The three possible semaphore waiting modes (do not wait, wait with timeout, * wait without timeout) are explored.<br> * The test expects that the semaphore wait function returns the correct value * in each of the above scenario and that the semaphore structure status is * correct after each operation. */ const struct testcase testsem1 = { sem1_gettest, sem1_setup, NULL, sem1_execute }; static char *sem2_gettest(void) { return "Semaphores, timeout"; } static void sem2_setup(void) { chSemInit(&sem1, 0); } static msg_t thread2(void *p) { (void)p; chThdSleepMilliseconds(50); chSysLock(); chSemSignalI(&sem1); /* For coverage reasons */ chSchRescheduleS(); chSysUnlock(); return 0; } static void sem2_execute(void) { int i; systime_t target_time; msg_t msg; /* * Testing special case TIME_IMMEDIATE. */ msg = chSemWaitTimeout(&sem1, TIME_IMMEDIATE); test_assert(1, msg == RDY_TIMEOUT, "wrong wake-up message"); test_assert(2, isempty(&sem1.s_queue), "queue not empty"); test_assert(3, sem1.s_cnt == 0, "counter not zero"); /* * Testing not timeout condition. */ threads[0] = chThdCreateStatic(wa[0], WA_SIZE, chThdGetPriority() - 1, thread2, 0); msg = chSemWaitTimeout(&sem1, MS2ST(500)); test_wait_threads(); test_assert(4, msg == RDY_OK, "wrong wake-up message"); test_assert(5, isempty(&sem1.s_queue), "queue not empty"); test_assert(6, sem1.s_cnt == 0, "counter not zero"); /* * Testing timeout condition. */ test_wait_tick(); target_time = chTimeNow() + MS2ST(5 * 500); for (i = 0; i < 5; i++) { test_emit_token('A' + i); msg = chSemWaitTimeout(&sem1, MS2ST(500)); test_assert(7, msg == RDY_TIMEOUT, "wrong wake-up message"); test_assert(8, isempty(&sem1.s_queue), "queue not empty"); test_assert(9, sem1.s_cnt == 0, "counter not zero"); } test_assert_sequence(10, "ABCDE"); test_assert_time_window(11, target_time, target_time + ALLOWED_DELAY); } const struct testcase testsem2 = { sem2_gettest, sem2_setup, NULL, sem2_execute }; #if CH_USE_SEMSW /** * @page test_sem_003 Atomic signal-wait test * * <h2>Description</h2> * This test case explicitly address the @p chSemWaitSignal() function. A * thread is created that performs a wait and a signal operations. * The tester thread is awakened from an atomic wait/signal operation.<br> * The test expects that the semaphore wait function returns the correct value * in each of the above scenario and that the semaphore structure status is * correct after each operation. */ static char *sem3_gettest(void) { return "Semaphores, atomic signal-wait"; } static void sem3_setup(void) { chSemInit(&sem1, 0); } static msg_t thread3(void *p) { (void)p; chSemWait(&sem1); chSemSignal(&sem1); return 0; } static void sem3_execute(void) { threads[0] = chThdCreateStatic(wa[0], WA_SIZE, chThdGetPriority()+1, thread3, 0); chSemSignalWait(&sem1, &sem1); test_assert(1, isempty(&sem1.s_queue), "queue not empty"); test_assert(2, sem1.s_cnt == 0, "counter not zero"); chSemSignalWait(&sem1, &sem1); test_assert(3, isempty(&sem1.s_queue), "queue not empty"); test_assert(4, sem1.s_cnt == 0, "counter not zero"); } const struct testcase testsem3 = { sem3_gettest, sem3_setup, NULL, sem3_execute }; #endif /* CH_USE_SEMSW */ #endif /* CH_USE_SEMAPHORES */ /** * @brief Test sequence for semaphores. */ const struct testcase * const patternsem[] = { #if CH_USE_SEMAPHORES &testsem1, &testsem2, #if CH_USE_SEMSW &testsem3, #endif #endif NULL };