@@ -60,15 +60,18 @@ describe("Tests for AsyncInferQueue.", () => {
6060
6161 inferQueue . setCallback ( callback ) ;
6262
63- for ( let i = 0 ; i < jobs ; i ++ ) {
64- const img = generateImage ( ) ;
65- // Start the inference request in non-blocking mode.
66- // The results will be available in the callback function.
67- await inferQueue . startAsync ( { data : img } , i ) ;
68- }
63+ try {
64+ for ( let i = 0 ; i < jobs ; i ++ ) {
65+ const img = generateImage ( ) ;
66+ // Start the inference request in non-blocking mode.
67+ // The results will be available in the callback function.
68+ await inferQueue . startAsync ( { data : img } , i ) ;
69+ }
6970
70- assert . strictEqual ( jobsDone . filter ( ( job ) => job . finished ) . length , jobs ) ;
71- inferQueue . release ( ) ;
71+ assert . strictEqual ( jobsDone . filter ( ( job ) => job . finished ) . length , jobs ) ;
72+ } finally {
73+ inferQueue . release ( ) ;
74+ }
7275 } ) ;
7376
7477 it ( "Test startAsync fails without callback" , async ( ) => {
@@ -92,8 +95,11 @@ describe("Tests for AsyncInferQueue.", () => {
9295 }
9396 }
9497 inferQueue . setCallback ( basicUserCallback ) ;
95- await inferQueue . startAsync ( { data : generateImage ( ) } ) ;
96- inferQueue . release ( ) ;
98+ try {
99+ await inferQueue . startAsync ( { data : generateImage ( ) } ) ;
100+ } finally {
101+ inferQueue . release ( ) ;
102+ }
97103 } ) ;
98104
99105 it ( "test Promise.all()" , async ( ) => {
@@ -124,9 +130,17 @@ describe("Tests for AsyncInferQueue.", () => {
124130 promises . push ( promise ) ;
125131 }
126132
127- await Promise . all ( promises ) ;
128- assert . strictEqual ( jobsDone . filter ( ( job ) => job . finished ) . length , jobs ) ;
129- inferQueue . release ( ) ;
133+ const allSettled = Promise . allSettled ( promises ) ;
134+
135+ try {
136+ const results = await allSettled ;
137+ const rejected = results . filter ( ( r ) => r . status === "rejected" ) ;
138+ assert . strictEqual ( rejected . length , 0 , "startAsync promise rejected" ) ;
139+ assert . strictEqual ( jobsDone . filter ( ( job ) => job . finished ) . length , jobs ) ;
140+ } finally {
141+ await allSettled ;
142+ inferQueue . release ( ) ;
143+ }
130144 } ) ;
131145
132146 it ( "Test AsyncInferQueue no freeze" , async ( ) => {
@@ -139,9 +153,12 @@ describe("Tests for AsyncInferQueue.", () => {
139153
140154 it ( "Test double set_callback" , async ( ) => {
141155 const inferQueue = new ov . AsyncInferQueue ( compiledModel , numRequest ) ;
142- inferQueue . setCallback ( ( ) => { } ) ;
143- inferQueue . setCallback ( ( ) => { } ) ;
144- inferQueue . release ( ) ;
156+ try {
157+ inferQueue . setCallback ( ( ) => { } ) ;
158+ inferQueue . setCallback ( ( ) => { } ) ;
159+ } finally {
160+ inferQueue . release ( ) ;
161+ }
145162 } ) ;
146163
147164 it ( "Test repeated AsyncInferQueue.release()" , async ( ) => {
@@ -165,19 +182,25 @@ describe("Tests for AsyncInferQueue.", () => {
165182
166183 it ( "Test setCallback throws and list possible signatures" , async ( ) => {
167184 const inferQueue = new ov . AsyncInferQueue ( compiledModel , numRequest ) ;
168- assert . throws ( ( ) => {
169- inferQueue . setCallback ( ) ;
170- } , / ' s e t C a l l b a c k ' m e t h o d c a l l e d w i t h i n c o r r e c t p a r a m e t e r s ./ ) ;
171- inferQueue . release ( ) ;
185+ try {
186+ assert . throws ( ( ) => {
187+ inferQueue . setCallback ( ) ;
188+ } , / ' s e t C a l l b a c k ' m e t h o d c a l l e d w i t h i n c o r r e c t p a r a m e t e r s ./ ) ;
189+ } finally {
190+ inferQueue . release ( ) ;
191+ }
172192 } ) ;
173193
174194 it ( "Test startAsync throws and list possible signatures" , async ( ) => {
175195 const inferQueue = new ov . AsyncInferQueue ( compiledModel , numRequest ) ;
176- inferQueue . setCallback ( basicUserCallback ) ;
177- assert . throws ( ( ) => {
178- inferQueue . startAsync ( { data : generateImage ( ) } , "user_data" , "extra_param" ) ;
179- } , / ' s t a r t A s y n c ' m e t h o d c a l l e d w i t h i n c o r r e c t p a r a m e t e r s ./ ) ;
180- inferQueue . release ( ) ;
196+ try {
197+ inferQueue . setCallback ( basicUserCallback ) ;
198+ assert . throws ( ( ) => {
199+ inferQueue . startAsync ( { data : generateImage ( ) } , "user_data" , "extra_param" ) ;
200+ } , / ' s t a r t A s y n c ' m e t h o d c a l l e d w i t h i n c o r r e c t p a r a m e t e r s ./ ) ;
201+ } finally {
202+ inferQueue . release ( ) ;
203+ }
181204 } ) ;
182205
183206 it ( "Test possibility to catch error in callback" , async ( ) => {
@@ -194,9 +217,12 @@ describe("Tests for AsyncInferQueue.", () => {
194217 } , / R e f e r e n c e E r r o r : j o b s D o n e i s n o t d e f i n e d / ) ;
195218 }
196219 }
197- inferQueue . setCallback ( callback ) ;
198- await inferQueue . startAsync ( { data : generateImage ( ) } , "data" ) ;
199- inferQueue . release ( ) ;
220+ try {
221+ inferQueue . setCallback ( callback ) ;
222+ await inferQueue . startAsync ( { data : generateImage ( ) } , "data" ) ;
223+ } finally {
224+ inferQueue . release ( ) ;
225+ }
200226 } ) ;
201227
202228 it ( "Test error in callback and rejected promise" , async ( ) => {
@@ -212,11 +238,44 @@ describe("Tests for AsyncInferQueue.", () => {
212238 }
213239 }
214240
215- inferQueue . setCallback ( callback ) ;
216- await inferQueue . startAsync ( { data : generateImage ( ) } , "data" ) . catch ( ( err ) => {
217- assert ( err instanceof Error ) ;
218- assert . strictEqual ( err . message , "jobsDone is not defined" ) ;
219- } ) ;
220- inferQueue . release ( ) ;
241+ try {
242+ inferQueue . setCallback ( callback ) ;
243+ await inferQueue . startAsync ( { data : generateImage ( ) } , "data" ) . catch ( ( err ) => {
244+ assert ( err instanceof Error ) ;
245+ assert . strictEqual ( err . message , "jobsDone is not defined" ) ;
246+ } ) ;
247+ } finally {
248+ inferQueue . release ( ) ;
249+ }
250+ } ) ;
251+
252+ it ( "Test startAsync with incorrect data shape" , async ( ) => {
253+ const inferQueue = new ov . AsyncInferQueue ( compiledModel , numRequest ) ;
254+ inferQueue . setCallback ( basicUserCallback ) ;
255+
256+ const incorrectShapeData = generateImage ( [ 1 , 2 , 3 ] ) ;
257+ try {
258+ await assert . rejects (
259+ async ( ) => await inferQueue . startAsync ( { data : incorrectShapeData } , "user_data" ) ,
260+ / M e m o r y a l l o c a t e d u s i n g s h a p e a n d e l e m e n t : : t y p e m i s m a t c / ,
261+ ) ;
262+ } finally {
263+ inferQueue . release ( ) ;
264+ }
265+ } ) ;
266+
267+ it ( "Test startAsync with incorrect data shape2" , async ( ) => {
268+ const inferQueue = new ov . AsyncInferQueue ( compiledModel , numRequest ) ;
269+ inferQueue . setCallback ( basicUserCallback ) ;
270+
271+ const tensor1 = new ov . Tensor ( ov . element . f32 , [ 1 , 3 , 32 , 31 ] ) ;
272+ try {
273+ await assert . rejects (
274+ async ( ) => await inferQueue . startAsync ( { data : tensor1 } , "user_data" ) ,
275+ / i n c o m p a t i b l e / ,
276+ ) ;
277+ } finally {
278+ inferQueue . release ( ) ;
279+ }
221280 } ) ;
222281} ) ;
0 commit comments