On Sat, 2010-06-26 at 08:59 +0100, Julian Foad wrote:
> On Fri, 2010-06-25, Greg Stein wrote:
> > On Fri, Jun 25, 2010 at 08:36,  <julianf...@apache.org> wrote:
> > >...
> > > +++ subversion/trunk/subversion/tests/libsvn_wc/pristine-store-test.c Fri 
> > > Jun 25 12:36:53 2010
> > >...
> > > +  /* Store a pristine text, and set DATA_SHA1 and DATA_MD5. */
> > > +  {
> > > +    const char *pristine_tmp_dir;
> > > +    const char *pristine_tmp_abspath;
> > > +    svn_stream_t *pristine_tmp_stream;
> > > +    svn_string_t *data_string = svn_string_create(data, pool);
> > > +    svn_stream_t *data_stream = svn_stream_from_string(data_string, 
> > > pool);
> > > +
> > > +    SVN_ERR(svn_wc__db_pristine_get_tempdir(&pristine_tmp_dir, db,
> > > +                                            wc_abspath, pool, pool));
> > > +    SVN_ERR(svn_stream_open_unique(&pristine_tmp_stream, 
> > > &pristine_tmp_abspath,
> > > +                                   pristine_tmp_dir, 
> > > svn_io_file_del_none,
> > > +                                   pool, pool));
> > > +
> > > +    data_stream = svn_stream_checksummed2(data_stream, &data_sha1, NULL,
> > > +                                          svn_checksum_sha1, TRUE, pool);
> > > +    data_stream = svn_stream_checksummed2(data_stream, &data_md5, NULL,
> > > +                                          svn_checksum_md5, TRUE, pool);
> > > +    SVN_ERR(svn_stream_copy3(data_stream, pristine_tmp_stream, NULL, 
> > > NULL,
> > > +                             pool));
> > 
> > You could just use svn_stream_write(..., data, ...) rather than copying 
> > streams.
> > 
> > >...
> > > +  /* Check that NEW_ABSPATH has been created with the translated text. */
> > > +  {
> > > +    apr_file_t *file;
> > > +    char buf[1000];
> > > +    apr_size_t bytes_read;
> > > +    svn_error_t *err;
> > > +
> > > +    SVN_ERR(svn_io_file_open(&file, new_abspath,
> > > +                             APR_FOPEN_READ, APR_FPROT_OS_DEFAULT, 
> > > pool));
> > > +    err = svn_io_file_read_full(file, buf, sizeof(buf), &bytes_read, 
> > > pool);
> > > +    if (err && APR_STATUS_IS_EOF(err->apr_err))
> > > +      svn_error_clear(err);
> > > +    else
> > > +      SVN_ERR(err);
> > 
> > There is a stream/file function that sucks an entire file into an
> > svn_string_t or somesuch. That would be much easier to use/understand.
> 
> I'll try those suggestions later.  Thanks.

Simplified in r959321, using svn_stream_printf() for the former and
svn_stream_contents_same2() for the latter.

Thanks.
- Julian


Reply via email to