Changeset ea459d4 in mainline for uspace/lib/riff/test/chunk.c
- Timestamp:
- 2020-09-24T14:25:21Z (4 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 120031a5
- Parents:
- aaf962e6
- git-author:
- Jiri Svoboda <jiri@…> (2020-09-22 17:25:10)
- git-committer:
- Jiri Svoboda <jiri@…> (2020-09-24 14:25:21)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/riff/test/chunk.c
raaf962e6 rea459d4 544 544 } 545 545 546 /** Seek back to different positions in a chunk */ 547 PCUT_TEST(rchunk_seek) 548 { 549 char fname[L_tmpnam]; 550 char *p; 551 riffw_t *rw; 552 riffr_t *rr; 553 riff_wchunk_t wriffck; 554 riff_wchunk_t wdatack; 555 riff_rchunk_t rriffck; 556 riff_rchunk_t rdatack; 557 uint32_t rword; 558 errno_t rc; 559 560 p = tmpnam(fname); 561 PCUT_ASSERT_NOT_NULL(p); 562 563 /* Write RIFF file */ 564 565 rc = riff_wopen(p, &rw); 566 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 567 PCUT_ASSERT_NOT_NULL(rw); 568 569 rc = riff_wchunk_start(rw, CKID_RIFF, &wriffck); 570 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 571 572 /* Write data chunk */ 573 574 rc = riff_wchunk_start(rw, CKID_dat1, &wdatack); 575 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 576 577 rc = riff_write_uint32(rw, 1); 578 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 579 580 rc = riff_write_uint32(rw, 2); 581 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 582 583 rc = riff_write_uint32(rw, 3); 584 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 585 586 rc = riff_write_uint32(rw, 4); 587 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 588 589 rc = riff_wchunk_end(rw, &wdatack); 590 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 591 592 rc = riff_wchunk_end(rw, &wriffck); 593 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 594 595 rc = riff_wclose(rw); 596 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 597 598 /* Read back RIFF file */ 599 600 rc = riff_ropen(p, &rriffck, &rr); 601 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 602 PCUT_ASSERT_NOT_NULL(rr); 603 604 PCUT_ASSERT_INT_EQUALS(CKID_RIFF, rriffck.ckid); 605 606 /* Read data chunk */ 607 608 rc = riff_rchunk_start(&rriffck, &rdatack); 609 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 610 PCUT_ASSERT_INT_EQUALS(CKID_dat1, rdatack.ckid); 611 612 rc = riff_read_uint32(&rdatack, &rword); 613 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 614 PCUT_ASSERT_INT_EQUALS(1, rword); 615 616 rc = riff_rchunk_end(&rdatack); 617 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 618 619 /* Try reading first word of data chunk again */ 620 621 rc = riff_rchunk_seek(&rdatack, 0, SEEK_SET); 622 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 623 624 rc = riff_read_uint32(&rdatack, &rword); 625 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 626 PCUT_ASSERT_INT_EQUALS(1, rword); 627 628 /* Try reading last word of data chunk */ 629 630 rc = riff_rchunk_seek(&rdatack, -4, SEEK_END); 631 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 632 633 rc = riff_read_uint32(&rdatack, &rword); 634 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 635 PCUT_ASSERT_INT_EQUALS(4, rword); 636 637 /* Try reading previous word of data chunk */ 638 639 rc = riff_rchunk_seek(&rdatack, -8, SEEK_CUR); 640 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 641 642 rc = riff_read_uint32(&rdatack, &rword); 643 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 644 PCUT_ASSERT_INT_EQUALS(3, rword); 645 646 rc = riff_rclose(rr); 647 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 648 649 (void) remove(p); 650 } 651 546 652 PCUT_EXPORT(chunk);
Note:
See TracChangeset
for help on using the changeset viewer.