@@ -1599,7 +1599,7 @@ mod tests {
15991599 99
16001600 ) ;
16011601 // Last byte is end-of-attributes
1602- assert_eq ! ( * bytes. last( ) . expect ( "TODO: handle error" ) , TAG_END_OF_ATTRIBUTES ) ;
1602+ assert_eq ! ( bytes. last( ) . copied ( ) . unwrap_or_else ( || panic! ( "empty bytes" ) ) , TAG_END_OF_ATTRIBUTES ) ;
16031603 }
16041604
16051605 #[ test]
@@ -1673,7 +1673,7 @@ mod tests {
16731673 <ipp body here>";
16741674 let result = parse_http_envelope ( http) ;
16751675 assert ! ( result. is_some( ) ) ;
1676- let req = result. expect ( "TODO: handle error" ) ;
1676+ let Some ( req) = result else { panic ! ( "parse_http_envelope failed" ) } ; let req = req ;
16771677 assert_eq ! ( req. content_length, Some ( 42 ) ) ;
16781678 assert ! ( req. body_offset > 0 ) ;
16791679 assert_eq ! ( & http[ req. body_offset..] , b"<ipp body here>" ) ;
@@ -1774,11 +1774,11 @@ mod tests {
17741774 fn dispatch_get_printer_attributes_returns_ok ( ) {
17751775 let state = make_shared_state ( ) ;
17761776 let data = build_test_ipp_request ( OP_GET_PRINTER_ATTRIBUTES , 50 , & [ ] , & [ ] ) ;
1777- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1778- let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "TODO: handle error " ) ;
1777+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
1778+ let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
17791779
17801780 let response = dispatch_operation ( & req, peer, & state) ;
1781- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1781+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
17821782
17831783 // Status should be successful-ok.
17841784 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
@@ -1803,11 +1803,11 @@ mod tests {
18031803 fn dispatch_validate_job_returns_ok ( ) {
18041804 let state = make_shared_state ( ) ;
18051805 let data = build_test_ipp_request ( OP_VALIDATE_JOB , 12 , & [ ] , & [ ] ) ;
1806- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1807- let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "TODO: handle error " ) ;
1806+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
1807+ let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
18081808
18091809 let response = dispatch_operation ( & req, peer, & state) ;
1810- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1810+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
18111811
18121812 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
18131813 assert_eq ! ( parsed. request_id, 12 ) ;
@@ -1822,11 +1822,11 @@ mod tests {
18221822 ( VALUE_TAG_KEYWORD , "document-format" , b"application/pdf" ) ,
18231823 ] ;
18241824 let data = build_test_ipp_request ( OP_PRINT_JOB , 20 , & attrs, doc) ;
1825- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1826- let peer: SocketAddr = "192.168.1.50:54321" . parse ( ) . expect ( "TODO: handle error " ) ;
1825+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
1826+ let peer: SocketAddr = "192.168.1.50:54321" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
18271827
18281828 let response = dispatch_operation ( & req, peer, & state) ;
1829- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1829+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
18301830
18311831 // Should succeed.
18321832 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
@@ -1843,8 +1843,8 @@ mod tests {
18431843 assert ! ( ipp_job_id > 0 ) ;
18441844
18451845 // Verify the job was inserted into the queue.
1846- let queue = state. job_queue . lock ( ) . expect ( "TODO: handle error " ) ;
1847- let all_jobs = queue. get_all_jobs ( ) . expect ( "TODO: handle error " ) ;
1846+ let queue = state. job_queue . lock ( ) . expect ( "mutex poisoned " ) ;
1847+ let all_jobs = queue. get_all_jobs ( ) . expect ( "get_all_jobs failed " ) ;
18481848 assert_eq ! ( all_jobs. len( ) , 1 ) ;
18491849 assert_eq ! ( all_jobs[ 0 ] . document_name, "Test Doc" ) ;
18501850 }
@@ -1856,32 +1856,33 @@ mod tests {
18561856 // First, submit a job.
18571857 let doc = b"some data" ;
18581858 let data = build_test_ipp_request ( OP_PRINT_JOB , 30 , & [ ] , doc) ;
1859- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1860- let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "TODO: handle error " ) ;
1859+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
1860+ let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
18611861 let response = dispatch_operation ( & req, peer, & state) ;
1862- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1863- let job_group = parsed
1862+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
1863+ let Some ( job_group) = parsed
18641864 . attribute_groups
18651865 . iter ( )
1866- . find ( |g| g. delimiter == TAG_JOB_ATTRIBUTES )
1867- . expect ( "TODO: handle error" ) ;
1868- let ipp_job_id = job_group. get_integer ( "job-id" ) . expect ( "TODO: handle error" ) ;
1866+ . find ( |g| g. delimiter == TAG_JOB_ATTRIBUTES ) else {
1867+ panic ! ( "job attributes group missing from response" ) ;
1868+ } ;
1869+ let ipp_job_id = job_group. get_integer ( "job-id" ) . expect ( "job-id attribute missing" ) ;
18691870
18701871 // Now cancel it.
18711872 let job_id_bytes = ipp_job_id. to_be_bytes ( ) ;
18721873 let cancel_attrs = vec ! [ ( VALUE_TAG_INTEGER , "job-id" , & job_id_bytes[ ..] ) ] ;
18731874 let cancel_data = build_test_ipp_request ( OP_CANCEL_JOB , 31 , & cancel_attrs, & [ ] ) ;
1874- let cancel_req = parse_ipp_request ( & cancel_data) . expect ( "TODO: handle error " ) ;
1875+ let cancel_req = parse_ipp_request ( & cancel_data) . expect ( "parse_ipp_request failed " ) ;
18751876
18761877 let cancel_response = dispatch_operation ( & cancel_req, peer, & state) ;
1877- let cancel_parsed = parse_ipp_request ( & cancel_response) . expect ( "TODO: handle error " ) ;
1878+ let cancel_parsed = parse_ipp_request ( & cancel_response) . expect ( "parse_ipp_request failed " ) ;
18781879
18791880 assert_eq ! ( cancel_parsed. operation_id, STATUS_OK ) ;
18801881 assert_eq ! ( cancel_parsed. request_id, 31 ) ;
18811882
18821883 // Verify the job status is now Cancelled.
1883- let queue = state. job_queue . lock ( ) . expect ( "TODO: handle error " ) ;
1884- let all_jobs = queue. get_all_jobs ( ) . expect ( "TODO: handle error " ) ;
1884+ let queue = state. job_queue . lock ( ) . expect ( "mutex poisoned " ) ;
1885+ let all_jobs = queue. get_all_jobs ( ) . expect ( "get_all_jobs failed " ) ;
18851886 assert_eq ! ( all_jobs. len( ) , 1 ) ;
18861887 assert_eq ! ( all_jobs[ 0 ] . status, JobStatus :: Cancelled ) ;
18871888 }
@@ -1892,11 +1893,11 @@ mod tests {
18921893 let job_id_bytes = 9999i32 . to_be_bytes ( ) ;
18931894 let attrs = vec ! [ ( VALUE_TAG_INTEGER , "job-id" , & job_id_bytes[ ..] ) ] ;
18941895 let data = build_test_ipp_request ( OP_CANCEL_JOB , 40 , & attrs, & [ ] ) ;
1895- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1896- let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "TODO: handle error " ) ;
1896+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
1897+ let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
18971898
18981899 let response = dispatch_operation ( & req, peer, & state) ;
1899- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1900+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
19001901
19011902 assert_eq ! ( parsed. operation_id, STATUS_CLIENT_ERROR_NOT_FOUND ) ;
19021903 }
@@ -1905,11 +1906,11 @@ mod tests {
19051906 fn dispatch_get_jobs_returns_empty_list ( ) {
19061907 let state = make_shared_state ( ) ;
19071908 let data = build_test_ipp_request ( OP_GET_JOBS , 60 , & [ ] , & [ ] ) ;
1908- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1909- let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "TODO: handle error " ) ;
1909+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
1910+ let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
19101911
19111912 let response = dispatch_operation ( & req, peer, & state) ;
1912- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1913+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
19131914
19141915 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
19151916 // Only operation-attributes group, no job groups.
@@ -1919,22 +1920,22 @@ mod tests {
19191920 #[ test]
19201921 fn dispatch_get_jobs_after_print ( ) {
19211922 let state = make_shared_state ( ) ;
1922- let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "TODO: handle error " ) ;
1923+ let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
19231924
19241925 // Submit two jobs.
19251926 for i in 0 ..2 {
19261927 let name_bytes = format ! ( "Job {i}" ) ;
19271928 let attrs = vec ! [ ( VALUE_TAG_NAME , "job-name" , name_bytes. as_bytes( ) ) ] ;
19281929 let data = build_test_ipp_request ( OP_PRINT_JOB , 100 + i as u32 , & attrs, b"data" ) ;
1929- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1930+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
19301931 dispatch_operation ( & req, peer, & state) ;
19311932 }
19321933
19331934 // Get-Jobs should return both.
19341935 let data = build_test_ipp_request ( OP_GET_JOBS , 200 , & [ ] , & [ ] ) ;
1935- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1936+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
19361937 let response = dispatch_operation ( & req, peer, & state) ;
1937- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1938+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
19381939
19391940 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
19401941 // 1 operation-attributes group + 2 job-attributes groups = 3
@@ -1951,11 +1952,11 @@ mod tests {
19511952 let state = make_shared_state ( ) ;
19521953 // Use a non-existent operation ID.
19531954 let data = build_test_ipp_request ( 0x00FF , 70 , & [ ] , & [ ] ) ;
1954- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
1955- let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "TODO: handle error " ) ;
1955+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
1956+ let peer: SocketAddr = "127.0.0.1:12345" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
19561957
19571958 let response = dispatch_operation ( & req, peer, & state) ;
1958- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
1959+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
19591960
19601961 assert_eq ! (
19611962 parsed. operation_id,
@@ -1995,7 +1996,7 @@ mod tests {
19951996 let bytes = builder. build ( ) ;
19961997
19971998 // Parse it back and verify the second value has an empty name.
1998- let parsed = parse_ipp_request ( & bytes) . expect ( "TODO: handle error " ) ;
1999+ let parsed = parse_ipp_request ( & bytes) . expect ( "parse_ipp_request failed " ) ;
19992000 let group = & parsed. attribute_groups [ 0 ] ;
20002001
20012002 // First attribute: "test-attr" with value "first-value"
@@ -2022,11 +2023,11 @@ mod tests {
20222023 ( VALUE_TAG_KEYWORD , "document-format" , b"application/pdf" ) ,
20232024 ] ;
20242025 let data = build_test_ipp_request ( OP_PRINT_JOB , 200 , & attrs, doc) ;
2025- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
2026- let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "TODO: handle error " ) ;
2026+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
2027+ let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
20272028
20282029 let response = dispatch_operation ( & req, peer, & state) ;
2029- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
2030+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
20302031 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
20312032
20322033 // Compute the expected hash.
@@ -2051,16 +2052,16 @@ mod tests {
20512052 let state = make_shared_state_with_dir ( tmp. path ( ) ) ;
20522053
20532054 let doc = b"identical content for dedup test" ;
2054- let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "TODO: handle error " ) ;
2055+ let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
20552056
20562057 // Submit the same document data twice (different job names).
20572058 for i in 0 ..2u32 {
20582059 let name = format ! ( "Dedup Test {i}" ) ;
20592060 let attrs = vec ! [ ( VALUE_TAG_NAME , "job-name" , name. as_bytes( ) ) ] ;
20602061 let data = build_test_ipp_request ( OP_PRINT_JOB , 300 + i, & attrs, doc) ;
2061- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
2062+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
20622063 let response = dispatch_operation ( & req, peer, & state) ;
2063- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
2064+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
20642065 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
20652066 }
20662067
@@ -2086,11 +2087,11 @@ mod tests {
20862087
20872088 // Submit a job with empty document data.
20882089 let data = build_test_ipp_request ( OP_PRINT_JOB , 400 , & [ ] , & [ ] ) ;
2089- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
2090- let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "TODO: handle error " ) ;
2090+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
2091+ let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
20912092
20922093 let response = dispatch_operation ( & req, peer, & state) ;
2093- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
2094+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
20942095 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
20952096
20962097 // The documents directory should have no files (empty data is hashed
@@ -2120,9 +2121,9 @@ mod tests {
21202121
21212122 // Manually write a document file.
21222123 let documents_dir = tmp. path ( ) . join ( "documents" ) ;
2123- std:: fs:: create_dir_all ( & documents_dir) . expect ( "TODO: handle error " ) ;
2124+ std:: fs:: create_dir_all ( & documents_dir) . expect ( "filesystem operation failed " ) ;
21242125 let content = b"test document bytes" ;
2125- std:: fs:: write ( documents_dir. join ( "deadbeef.dat" ) , content) . expect ( "TODO: handle error " ) ;
2126+ std:: fs:: write ( documents_dir. join ( "deadbeef.dat" ) , content) . expect ( "filesystem operation failed " ) ;
21262127
21272128 let retrieved = server
21282129 . retrieve_document ( "deadbeef" )
@@ -2146,16 +2147,16 @@ mod tests {
21462147 let server = IppServer :: new ( None , Some ( tmp. path ( ) . to_path_buf ( ) ) ) ;
21472148
21482149 // Ensure documents dir exists (normally done by start()).
2149- std:: fs:: create_dir_all ( tmp. path ( ) . join ( "documents" ) ) . expect ( "TODO: handle error " ) ;
2150+ std:: fs:: create_dir_all ( tmp. path ( ) . join ( "documents" ) ) . expect ( "filesystem operation failed " ) ;
21502151
21512152 let doc = b"roundtrip content verification payload" ;
21522153 let attrs = vec ! [ ( VALUE_TAG_NAME , "job-name" , b"Roundtrip Test" as & [ u8 ] ) ] ;
21532154 let data = build_test_ipp_request ( OP_PRINT_JOB , 500 , & attrs, doc) ;
2154- let req = parse_ipp_request ( & data) . expect ( "TODO: handle error " ) ;
2155- let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "TODO: handle error " ) ;
2155+ let req = parse_ipp_request ( & data) . expect ( "parse_ipp_request failed " ) ;
2156+ let peer: SocketAddr = "10.0.0.1:9999" . parse ( ) . expect ( "hardcoded address is invalid " ) ;
21562157
21572158 let response = dispatch_operation ( & req, peer, & state) ;
2158- let parsed = parse_ipp_request ( & response) . expect ( "TODO: handle error " ) ;
2159+ let parsed = parse_ipp_request ( & response) . expect ( "parse_ipp_request failed " ) ;
21592160 assert_eq ! ( parsed. operation_id, STATUS_OK ) ;
21602161
21612162 // Compute the hash the same way the server does.
0 commit comments