File Manager

Current Path : /usr/share/doc/crm114/examples/tests/
Upload File :
Current File : //usr/share/doc/crm114/examples/tests/exectest.crm

#! /usr/bin/crm
#
#	exectest.crm - test system execution

# Copyright 2009 William S. Yerazunis.
# This file is under GPLv3, as described in COPYING.

window
{
	isolate (:lsout:)
	output /\n ----- executing an ls -----\n/
	syscall ( ) (:lsout:) /ls/
	output /:*:lsout:/
	isolate (:calcout:)
	output /\n ----- calculating 1 + 2 + 3 using bc -----\n/
	syscall ( 1 + 2 + 3 \n) (:calcout:) /bc/
	output /:*:calcout:/
	isolate (:lslaout:)
	output /\n ----- executing an ls -la -----\n/
	syscall ( ) (:lslaout:) /ls -la /
	output /:*:lslaout:/
	isolate (:catout:)
	output /\n ----- outputting to a file using cat -----\n/
	syscall ( This is a cat out \n) (:catout:) /cat > e1.out/
	output /:*:catout:/
	isolate (:c1:)
	isolate ( :proc:)
	output /\n ----- keeping a process around ----  \n/
	output /\n preparing... :*:proc:/
	syscall <keep> ( a one \n ) ( ) (:proc:) /cat > e2.out/
	output /\n did one... :*:proc:/
	syscall <keep> ( and a two \n ) () (:proc:) //
	output /\n did it again...:*:proc:/
	syscall ( and a three \n) () (:proc:) //
	output /\n and done ...:*:proc: \n/
	output /\n ----- testing keep reads from proc -----\n/
	isolate (:lslaout:) / /
#	syscall < keep > ( ) (:lslaout:) (:proc:) /ls -la \/dev /
	syscall < keep > ( ) (:lslaout:) (:proc:) /ls -la /
	output /--- got immediate : \n:*:lslaout: \n ---end-----/
    :async_test_sleeploop:
	syscall <keep > () (:lslaout:) (:proc:) //
	output /--- got this later : \n-:*:lslaout:-\n/
	{
		#       try it first sleeping only .1 second
		{
			syscall /sleep .1/
			syscall <keep> () (:lslaout:) (:proc:)
	output /--- .1 sleep: got : -:*:lslaout:-/
			match [:lslaout:] /....../
			goto /:async_test_sleeploop:/
		}
		#       try again, sleeping 1 second
		{
			syscall <> /sleep 1/
			syscall <keep > () (:lslaout:) (:proc:)
	output /--- 1.0 sleep: got : \n-:*:lslaout:-\n/
			match [:lslaout:] /......./
			goto /:async_test_sleeploop:/
		}
		#       try onece again, sleeping 3 second
		{
			syscall <> /sleep 3/
			syscall <keep > () (:lslaout:) (:proc:)
	output /--- 3.0 sleep: got : \n-:*:lslaout:\n/
			match [:lslaout:] /......./
			goto /:async_test_sleeploop:/
		}
	}
	syscall <> () (:lslaout:) (:proc:) //
	output /--- and finally synch\/eof : \n:*:lslaout: \n ---end-----/
	output /Testing fire-and-forget asynch \n/
	syscall < async > ( ) (:lslaout:) (:proc:) /ls -la \/dev /
	output /fire and forget ls got: :*:lslaout: \n/

}

File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com