driver_test.php
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 1,687 行 · 第 1/4 页
PHP
1,687 行
$success=0; else { $row=1234; $data=array(); $data["user_name"]="user_$row"; $data["user_password"]="somepassword"; $data["subscribed"]=$row % 2; $data["user_id"]=$row; $data["quota"]=strval($row/100); $data["weight"]=sqrt($row); $data["access_date"]=MetabaseToday(); $data["access_time"]=MetabaseTime(); $data["approved"]=MetabaseNow(); if(($prepared_query=MetabasePrepareQuery($database,"INSERT INTO users (user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved) VALUES (?,?,?,?,?,?,?,?,?)"))) { if(!InsertTestValues($database,$prepared_query,$data)) { $success=0; } MetabaseFreePreparedQuery($database,$prepared_query); if($success) { if(!($result=MetabaseQuery($database,"SELECT user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved FROM users"))) $success=0; else { $fields=array( "user_name", "user_password", "subscribed", "user_id", "quota", "weight", "access_date", "access_time", "approved" ); if(($columns=MetabaseNumberOfColumns($database,$result))==count($fields)) { if(($success=MetabaseGetColumnNames($database,$result,$column_names))) { if($columns==count($column_names)) { for($column=0;$column<$columns;$column++) { if($column_names[$fields[$column]]!=$column) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result column \"".$fields[$column]."\" was returned in position ".$column_names[$fields[$column]]." unlike $column as expected$eol"; } } } else { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result returned a number of ".count($column_names)." column names unlike $columns as expected$eol"; } } } else { if($columns==-1) $success=0; else { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result returned a number of $columns columns unlike ".count($fields)." as expected$eol"; } } MetabaseFreeResult($database,$result); } } if($success && $pass) { $passed++; echo "OK.$eol"; } } else $success=0; } } if(IsSet($tests["nulls"]) && $success) { $test="nulls"; echo "Testing storage and retrieval of NULL values... "; flush(); $pass=1; $test_values=array( "test", "NULL", "null", "" ); for($test_value=0;$success && $test_value<=count($test_values);$test_value++) { $is_null=($test_value==count($test_values)); if($is_null) $value="NULL"; else $value=MetabaseGetTextFieldValue($database,$test_values[$test_value]); if(MetabaseQuery($database,"DELETE FROM users") && MetabaseQuery($database,"INSERT INTO users (user_name,user_password,user_id) VALUES ($value,$value,0)") && ($result=MetabaseQuery($database,"SELECT user_name,user_password FROM users"))) { if(MetabaseEndOfResult($database,$result)) { if($pass) { $pass=0; $failed++; echo "FAILED!$eol"; } echo "Test $test: the query result seems to have reached the end of result earlier than expected$eol"; } else { if(MetabaseResultIsNull($database,$result,0,0)!=$is_null) { if($pass) { $pass=0; $failed++; echo "FAILED!$eol"; } if($is_null) echo "Test $test: a query result column is not NULL unlike what was expected$eol"; else echo "Test $test: a query result column is NULL although it was expected to be \"".$test_values[$test_value]."\"$eol"; } else { if(MetabaseResultIsNull($database,$result,0,1)!=$is_null) { if($pass) { $pass=0; $failed++; echo "FAILED!$eol"; } if($is_null) echo "Test $test: a query result column is not NULL unlike what was expected$eol"; else echo "Test $test: a query result column is NULL although it was expected to be \"".$test_values[$test_value]."\"$eol"; } else { if(!MetabaseEndOfResult($database,$result)) { if($pass) { $pass=0; $failed++; echo "FAILED!$eol"; } echo "Test $test: the query result did not seem to have reached the end of result as expected after testing only if columns are NULLs$eol"; } } } } MetabaseFreeResult($database,$result); } else { $success=0; break; } } if($success && $pass) { $passed++; echo "OK.$eol"; } } if(IsSet($tests["escapesequences"]) && $success) { $test="escapesequences"; echo "Testing escaping text values with special characters... "; flush(); $pass=1; $test_strings=array( "'", "\"", "\\", "%", "_", "''", "\"\"", "\\\\", "\\'\\'", "\\\"\\\"" ); for($string=0;$string<count($test_strings);$string++) { $value=MetabaseGetTextFieldValue($database,$test_strings[$string]); if(!MetabaseQuery($database,"DELETE FROM users") || !MetabaseQuery($database,"INSERT INTO users (user_name,user_password,user_id) VALUES ($value,$value,0)") || !($result=MetabaseQuery($database,"SELECT user_name,user_password FROM users"))) $success=0; else { if(MetabaseEndOfResult($database,$result)) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result seems to have reached the end of result earlier than expected$eol"; } else { $field="user_name"; if(strcmp($value=MetabaseFetchResult($database,$result,0,$field),$test_strings[$string])) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the value retrieved for field \"$field\" (\"$value\") doesn't match what was stored (".$test_strings[$string].")$eol"; } else { $field="user_password"; if(strcmp($value=MetabaseFetchResult($database,$result,0,$field),$test_strings[$string])) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the value retrieved for field \"$field\" (\"$value\") doesn't match what was stored (".$test_string[$string].")$eol"; } else { if(!MetabaseEndOfResult($database,$result)) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result did not seem to have reached the end of result as expected after testing only if text fields values are correctly escaped$eol"; } } } } MetabaseFreeResult($database,$result); } if(!$success || !$pass) break; } if($success && $pass) { $passed++; echo "OK.$eol"; } } if(IsSet($tests["ranges"]) && $success) { if(MetabaseSupport($database,"SelectRowRanges")) { $test="ranges"; echo "Testing paged queries... "; flush(); $pass=1; if(!MetabaseQuery($database,"DELETE FROM users")) $success=0; else { if(($prepared_query=MetabasePrepareQuery($database,"INSERT INTO users (user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved) VALUES (?,?,?,?,?,?,?,?,?)"))) { $data=array(); for($total_rows=5,$row=0;$row<$total_rows;$row++) { $data[$row]["user_name"]="user_$row"; $data[$row]["user_password"]="somepassword"; $data[$row]["subscribed"]=$row % 2; $data[$row]["user_id"]=$row; $data[$row]["quota"]=sprintf("%.2f",strval($row/100)); $data[$row]["weight"]=sqrt($row); $data[$row]["access_date"]=MetabaseToday(); $data[$row]["access_time"]=MetabaseTime(); $data[$row]["approved"]=MetabaseNow(); if(!InsertTestValues($database,$prepared_query,$data[$row])) { $success=0; break; } } MetabaseFreePreparedQuery($database,$prepared_query); if($success) { for($rows=2,$start_row=0;$pass && $start_row<$total_rows;$start_row+=$rows) { MetabaseSetSelectedRowRange($database,$start_row,$rows); if(!($result=MetabaseQuery($database,"SELECT user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved FROM users ORDER BY user_id"))) { $success=0; break; } else { for($row=0;$row<$rows && $row+$start_row<$total_rows;$row++) { if(VerifyFetchedValues($database,$result,$row,$data[$row+$start_row],$value,$field)) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the value retrieved from row ".($row+$start_row)." for field \"$field\" ($value) doesn't match what was stored (".$data[$row+$start_row][$field].")$eol"; break; } } if($pass) { if(!MetabaseEndOfResult($database,$result)) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result did not seem to have reached the end of result as expected starting row $start_row after fetching upto row $row$eol"; } } MetabaseFreeResult($database,$result); } } } if($success) { for($rows=2,$start_row=0;$pass && $start_row<$total_rows;$start_row+=$rows) { MetabaseSetSelectedRowRange($database,$start_row,$rows); if(!($result=MetabaseQuery($database,"SELECT user_name,user_password,subscribed,user_id,quota,weight,access_date,access_time,approved FROM users ORDER BY user_id"))) { $success=0; break; } else { if(($result_rows=MetabaseNumberOfRows($database,$result))>$rows) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: expected a result of no more than $rows but the returned number of rows is $result_rows"; } else { for($row=0;$row<$result_rows;$row++) { if(MetabaseEndOfResult($database,$result)) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result seem to have reached the end of result at row $row that is before $result_rows as expected$eol"; break; } if(VerifyFetchedValues($database,$result,$row,$data[$row+$start_row],$value,$field)) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the value retrieved from row ".($row+$start_row)." for field \"$field\" ($value) doesn't match what was stored (".$data[$row+$start_row][$field].")$eol"; break; } } } if($pass) { if(!MetabaseEndOfResult($database,$result)) { $pass=0; echo "FAILED!$eol"; $failed++; echo "Test $test: the query result did not seem to have reached the end of result as expected$eol"; } } MetabaseFreeResult($database,$result); } } } if($success && $pass) { $passed++; echo "OK.$eol"; } } else $success=0; } } else echo "Selecting rows ranges is not supported.$eol"; } if(IsSet($tests["sequences"]) && $success) { if(MetabaseSupport($database,"Sequences")) { $test="sequences"; echo "Testing sequences... "; flush(); $pass=1; for($start_value=1;$success && $pass && $start_value<4;$start_value++) { $sequence_name="test_sequence_$start_value"; MetabaseDropSequence($database,$sequence_name); if(($success=MetabaseCreateSequence($database,$sequence_name,$start_value)))
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?