[poc][wip] sqlite3-tcl 3.30.1 + enable tests

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[poc][wip] sqlite3-tcl 3.30.1 + enable tests

Landry Breuil-5
Hi,

sqlite3-tcl is a bit outdated compared to 'main' sqlite3, so im
pondering moving back to the previous situation of having them as a
single port with multipackages (which was the case before sqlite3 got
imported into base) - and while here i hacked my way around to be able
to run the tcl test suite. Right now its still running (and seems hung)
but that allows to run those natively for each updates.

- we need to switch to the -src tarball which is the only one containing
  tests
- that requires horrible hacks to generate configure in the autoconf/tea
  subdir, + generate tclsqlite3.c wrapper.
- that means rerunning configure/building in do-test as the WRKDIST dir
  changes

so its a gross hack, more an interesting exercise in ports wrestling,
but finally having sqlite tests. even if it doesnt build with the same
options as the main sqlite3 port.. some of the SQLITE_ENABLE_XX choices
look rather arbitrary.

stu, an opinion about keeping it separate or not ?

Landry

sqlite3-tcl-3.30.1-with-tests.diff (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Landry Breuil-5
On Sat, Nov 09, 2019 at 03:55:18PM +0100, Landry Breuil wrote:

> Hi,
>
> sqlite3-tcl is a bit outdated compared to 'main' sqlite3, so im
> pondering moving back to the previous situation of having them as a
> single port with multipackages (which was the case before sqlite3 got
> imported into base) - and while here i hacked my way around to be able
> to run the tcl test suite. Right now its still running (and seems hung)
> but that allows to run those natively for each updates.
>
> - we need to switch to the -src tarball which is the only one containing
>   tests
> - that requires horrible hacks to generate configure in the autoconf/tea
>   subdir, + generate tclsqlite3.c wrapper.
> - that means rerunning configure/building in do-test as the WRKDIST dir
>   changes
>
> so its a gross hack, more an interesting exercise in ports wrestling,
> but finally having sqlite tests. even if it doesnt build with the same
> options as the main sqlite3 port.. some of the SQLITE_ENABLE_XX choices
> look rather arbitrary.

And the resulting libsqlite3 tcl library is actually completely broken,
so yeah its a gross hack. But that said, i managed to run the complete
tcl testsuite, which resulted after smth like 7h in not so bad results:

SQLite 2019-10-10 20:19:45 18db032d058f1436ce3dea84081f4ee5a0f2259ad97301d43c426bc7f3dfalt1              
13 errors out of 3444413 tests on c64.proxmox2 OpenBSD 64-bit little-endian                              
!Failures on these tests: backup2-10 loadext-2.1 loadext-2.2 loadext-2.3 loadext-3.2 sort3-3 memsubsys1.backup2-10 memsubsys2.backup2-10 no_mutex_try.backup2-10 journaltest.backup2-10 inmemory_journal.backup2-10 prepare.backup2-10 mm-backup2-10

(and i think the failures are not actual failures)

so still, this *might* be interesting to be able to run those tests somehow, so
that one updating sqlite3 can be a bit more comfortable with testing.

Landry

Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Landry Breuil-5
On Sun, Nov 10, 2019 at 10:13:38AM +0100, Landry Breuil wrote:

> On Sat, Nov 09, 2019 at 03:55:18PM +0100, Landry Breuil wrote:
> > Hi,
> >
> > sqlite3-tcl is a bit outdated compared to 'main' sqlite3, so im
> > pondering moving back to the previous situation of having them as a
> > single port with multipackages (which was the case before sqlite3 got
> > imported into base) - and while here i hacked my way around to be able
> > to run the tcl test suite. Right now its still running (and seems hung)
> > but that allows to run those natively for each updates.
> >
> > - we need to switch to the -src tarball which is the only one containing
> >   tests
> > - that requires horrible hacks to generate configure in the autoconf/tea
> >   subdir, + generate tclsqlite3.c wrapper.
> > - that means rerunning configure/building in do-test as the WRKDIST dir
> >   changes
> >
> > so its a gross hack, more an interesting exercise in ports wrestling,
> > but finally having sqlite tests. even if it doesnt build with the same
> > options as the main sqlite3 port.. some of the SQLITE_ENABLE_XX choices
> > look rather arbitrary.
>
> And the resulting libsqlite3 tcl library is actually completely broken,
> so yeah its a gross hack. But that said, i managed to run the complete
> tcl testsuite, which resulted after smth like 7h in not so bad results:
>
> SQLite 2019-10-10 20:19:45 18db032d058f1436ce3dea84081f4ee5a0f2259ad97301d43c426bc7f3dfalt1              
> 13 errors out of 3444413 tests on c64.proxmox2 OpenBSD 64-bit little-endian                              
> !Failures on these tests: backup2-10 loadext-2.1 loadext-2.2 loadext-2.3 loadext-3.2 sort3-3 memsubsys1.backup2-10 memsubsys2.backup2-10 no_mutex_try.backup2-10 journaltest.backup2-10 inmemory_journal.backup2-10 prepare.backup2-10 mm-backup2-10
>
> (and i think the failures are not actual failures)
>
> so still, this *might* be interesting to be able to run those tests somehow, so
> that one updating sqlite3 can be a bit more comfortable with testing.
And now a much better version that produces a working tcl sqlite library
(tested by running tdbc-sqlite3 tests) *and* running tests. Went the
simpler route by adding the complete -src tarball as an additional
distfile, and building/running tests from its source dir. A bit gross,
but works.

Now, opinions ? Yays/Nays ? General apathy on the subject ?

Landry

sqlite3-tcl-3.30.1.diff (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Rafael Sadowski
On Sun Nov 10, 2019 at 10:37:07AM +0100, Landry Breuil wrote:

> On Sun, Nov 10, 2019 at 10:13:38AM +0100, Landry Breuil wrote:
> > On Sat, Nov 09, 2019 at 03:55:18PM +0100, Landry Breuil wrote:
> > > Hi,
> > >
> > > sqlite3-tcl is a bit outdated compared to 'main' sqlite3, so im
> > > pondering moving back to the previous situation of having them as a
> > > single port with multipackages (which was the case before sqlite3 got
> > > imported into base) - and while here i hacked my way around to be able
> > > to run the tcl test suite. Right now its still running (and seems hung)
> > > but that allows to run those natively for each updates.
> > >
> > > - we need to switch to the -src tarball which is the only one containing
> > >   tests
> > > - that requires horrible hacks to generate configure in the autoconf/tea
> > >   subdir, + generate tclsqlite3.c wrapper.
> > > - that means rerunning configure/building in do-test as the WRKDIST dir
> > >   changes
> > >
> > > so its a gross hack, more an interesting exercise in ports wrestling,
> > > but finally having sqlite tests. even if it doesnt build with the same
> > > options as the main sqlite3 port.. some of the SQLITE_ENABLE_XX choices
> > > look rather arbitrary.
> >
> > And the resulting libsqlite3 tcl library is actually completely broken,
> > so yeah its a gross hack. But that said, i managed to run the complete
> > tcl testsuite, which resulted after smth like 7h in not so bad results:
> >
> > SQLite 2019-10-10 20:19:45 18db032d058f1436ce3dea84081f4ee5a0f2259ad97301d43c426bc7f3dfalt1              
> > 13 errors out of 3444413 tests on c64.proxmox2 OpenBSD 64-bit little-endian                              
> > !Failures on these tests: backup2-10 loadext-2.1 loadext-2.2 loadext-2.3 loadext-3.2 sort3-3 memsubsys1.backup2-10 memsubsys2.backup2-10 no_mutex_try.backup2-10 journaltest.backup2-10 inmemory_journal.backup2-10 prepare.backup2-10 mm-backup2-10
> >
> > (and i think the failures are not actual failures)
> >
> > so still, this *might* be interesting to be able to run those tests somehow, so
> > that one updating sqlite3 can be a bit more comfortable with testing.
>
> And now a much better version that produces a working tcl sqlite library
> (tested by running tdbc-sqlite3 tests) *and* running tests. Went the
> simpler route by adding the complete -src tarball as an additional
> distfile, and building/running tests from its source dir. A bit gross,
> but works.
>
> Now, opinions ? Yays/Nays ? General apathy on the subject ?

The test suite is a big benefit for porting new updates. Any objection
to switch HOMEPAGE to HTTPS?

>
> Landry

> ? Makefile.oot
> ? sqlite3-tcl-3.30.1-with-tests.diff
> ? pkg/PLIST.new
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/databases/sqlite3-tcl/Makefile,v
> retrieving revision 1.10
> diff -u -r1.10 Makefile
> --- Makefile 12 Jul 2019 20:44:02 -0000 1.10
> +++ Makefile 10 Nov 2019 09:34:10 -0000
> @@ -2,10 +2,11 @@
>  
>  COMMENT = Tcl bindings for SQLite3
>  
> -V = 3.24.0
> +V = 3.30.1
>  VER = ${V:S/.//g}
>  
>  DISTNAME = sqlite-autoconf-${VER:C/.$/0\0/}00
> +DISTFILES = ${DISTNAME}${EXTRACT_SUFX} sqlite-src-${VER:C/.$/0\0/}00.zip
>  PKGNAME = sqlite3-tcl-${V}
>  CATEGORIES = databases
>  HOMEPAGE = http://www.sqlite.org/
> @@ -16,11 +17,12 @@
>  
>  WANTLIB = pthread
>  
> -MASTER_SITES = ${HOMEPAGE}2018/
> +MASTER_SITES = ${HOMEPAGE}2019/
>  
>  MODULES = lang/tcl
>  BUILD_DEPENDS = ${MODTCL_BUILD_DEPENDS}
>  RUN_DEPENDS = ${MODTCL_RUN_DEPENDS}
> +MODTCL_VERSION = 8.6
>  
>  FAKE_FLAGS = PKG_DIR=sqlite3
>  SEPARATE_BUILD = Yes
> @@ -29,8 +31,6 @@
>  CONFIGURE_ARGS = --with-tcl=${MODTCL_LIBDIR} \
>   --libdir=${MODTCL_TCLDIR}
>  
> -NO_TEST = Yes
> -
>  CFLAGS += -DSQLITE_ENABLE_COLUMN_METADATA=1 \
>   -DSQLITE_ENABLE_DBSTAT_VTAB=1 \
>   -DSQLITE_ENABLE_EXPLAIN_COMMENTS=1 \
> @@ -47,5 +47,12 @@
>  
>  WRKSRC = ${WRKDIST}/tea
>  SUBST_VARS = VER
> +
> +do-test:
> + sed -i -e 's#editline/readline.h#readline/readline.h#' ${WRKDIR}/sqlite-src-${VER:C/.$/0\0/}00/src/shell.c.in
> + cd ${WRKDIR}/sqlite-src-${VER:C/.$/0\0/}00 && \
> + ${CONFIGURE_ENV} ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS} && \
> + ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} fulltest
> +
>  
>  .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/databases/sqlite3-tcl/distinfo,v
> retrieving revision 1.7
> diff -u -r1.7 distinfo
> --- distinfo 25 Jun 2018 17:47:01 -0000 1.7
> +++ distinfo 10 Nov 2019 09:34:10 -0000
> @@ -1,2 +1,4 @@
> -SHA256 (sqlite-autoconf-3240000.tar.gz) = 2dFOiMb7bWjenKDR+Xl0d9gvw67WE1WPh/+9u8XOt0o=
> -SIZE (sqlite-autoconf-3240000.tar.gz) = 2699252
> +SHA256 (sqlite-autoconf-3300100.tar.gz) = jFpQ2wib0qGwjbxbANICdgLKf/I4unZY+rykVNQpjmA=
> +SHA256 (sqlite-src-3300100.zip) = RpA3BzcYkUnJ6DREFKo3H4mnDjdEujF87xpJ+w7oHOE=
> +SIZE (sqlite-autoconf-3300100.tar.gz) = 2848951
> +SIZE (sqlite-src-3300100.zip) = 12648162
> Index: patches/patch-tea_configure
> ===================================================================
> RCS file: /cvs/ports/databases/sqlite3-tcl/patches/patch-tea_configure,v
> retrieving revision 1.3
> diff -u -r1.3 patch-tea_configure
> --- patches/patch-tea_configure 22 Nov 2017 20:54:18 -0000 1.3
> +++ patches/patch-tea_configure 10 Nov 2019 09:34:10 -0000
> @@ -1,7 +1,8 @@
>  $OpenBSD: patch-tea_configure,v 1.3 2017/11/22 20:54:18 stu Exp $
> ---- tea/configure.orig Wed Apr 26 16:58:46 2017
> -+++ tea/configure Wed Apr 26 16:59:16 2017
> -@@ -7237,7 +7237,7 @@ fi
> +Index: tea/configure
> +--- tea/configure.orig
> ++++ tea/configure
> +@@ -7249,7 +7249,7 @@ fi
>      CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
>   fi
>   LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}

Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Stuart Cassoff-4
In reply to this post by Landry Breuil-5
Please keep them separate.

Much easier to update either.

If they were tied together and I wanted to update tcl-sqlite I'd have to
spend a week testing and convincing.

Also, tcl-sqlite isn't built with the same options as the main sqlite
port.

The tests would be nice but I'm not sure you're going down the right
path; the amalgamation build is really the only sensible and
mostly-guaranteed-to-work way to build sqlite.



Stu


  ---------- Original Message ----------
  From: Landry Breuil <[hidden email]>
  Date: November 9, 2019 at 9:55 AM


  Hi,

  sqlite3-tcl is a bit outdated compared to 'main' sqlite3, so im
  pondering moving back to the previous situation of having them as a
  single port with multipackages (which was the case before sqlite3 got
  imported into base) - and while here i hacked my way around to be
  able
  to run the tcl test suite. Right now its still running (and seems
  hung)
  but that allows to run those natively for each updates.

  - we need to switch to the -src tarball which is the only one
  containing
  tests
  - that requires horrible hacks to generate configure in the
  autoconf/tea
  subdir, + generate tclsqlite3.c wrapper.
  - that means rerunning configure/building in do-test as the WRKDIST
  dir
  changes

  so its a gross hack, more an interesting exercise in ports wrestling,
  but finally having sqlite tests. even if it doesnt build with the
  same
  options as the main sqlite3 port.. some of the SQLITE_ENABLE_XX
  choices
  look rather arbitrary.

  stu, an opinion about keeping it separate or not ?

  Landry
Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Stuart Cassoff-4
In reply to this post by Landry Breuil-5
"some of the SQLITE_ENABLE_XX choices look rather arbitrary."

Actually I spent some time carefully poring through all the options so I
could provide the best sqlite possible for Tcl.

Yeah, so separate please.


Stu




  ---------- Original Message ----------
  From: Landry Breuil <[hidden email]>
  Date: November 9, 2019 at 9:55 AM


  Hi,

  sqlite3-tcl is a bit outdated compared to 'main' sqlite3, so im
  pondering moving back to the previous situation of having them as a
  single port with multipackages (which was the case before sqlite3 got
  imported into base) - and while here i hacked my way around to be
  able
  to run the tcl test suite. Right now its still running (and seems
  hung)
  but that allows to run those natively for each updates.

  - we need to switch to the -src tarball which is the only one
  containing
  tests
  - that requires horrible hacks to generate configure in the
  autoconf/tea
  subdir, + generate tclsqlite3.c wrapper.
  - that means rerunning configure/building in do-test as the WRKDIST
  dir
  changes

  so its a gross hack, more an interesting exercise in ports wrestling,
  but finally having sqlite tests. even if it doesnt build with the
  same
  options as the main sqlite3 port.. some of the SQLITE_ENABLE_XX
  choices
  look rather arbitrary.

  stu, an opinion about keeping it separate or not ?

  Landry
Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Stuart Cassoff-4
In reply to this post by Landry Breuil-5
Also I don't think this needs to be forced to build against 8.6.

Sorry for all the messages, I'm just coming back after almost 2 years
away ... whatever that means.


Stu

  ---------- Original Message ----------
  From: Landry Breuil <[hidden email]>
  Date: November 9, 2019 at 9:55 AM


  Hi,

  sqlite3-tcl is a bit outdated compared to 'main' sqlite3, so im
  pondering moving back to the previous situation of having them as a
  single port with multipackages (which was the case before sqlite3 got
  imported into base) - and while here i hacked my way around to be
  able
  to run the tcl test suite. Right now its still running (and seems
  hung)
  but that allows to run those natively for each updates.

  - we need to switch to the -src tarball which is the only one
  containing
  tests
  - that requires horrible hacks to generate configure in the
  autoconf/tea
  subdir, + generate tclsqlite3.c wrapper.
  - that means rerunning configure/building in do-test as the WRKDIST
  dir
  changes

  so its a gross hack, more an interesting exercise in ports wrestling,
  but finally having sqlite tests. even if it doesnt build with the
  same
  options as the main sqlite3 port.. some of the SQLITE_ENABLE_XX
  choices
  look rather arbitrary.

  stu, an opinion about keeping it separate or not ?

  Landry
Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Landry Breuil-5
On Thu, Nov 14, 2019 at 12:31:37AM -0500, [hidden email] wrote:
> Also I don't think this needs to be forced to build against 8.6.

Running the tests require 8.6 - and honestly, i'm only interested in
running the tests.

> Sorry for all the messages, I'm just coming back after almost 2 years
> away ... whatever that means.

Does this mean you're going to update/maintain this port again ? :)

Landry

Reply | Threaded
Open this post in threaded view
|

Re: [poc][wip] sqlite3-tcl 3.30.1 + enable tests

Stuart Cassoff-4
> ---------- Original Message ----------
> From: Landry Breuil <[hidden email]>
> Date: November 14, 2019 at 3:21 AM
>
> Does this mean you're going to update/maintain this port again ? :)
>
> Landry

Yes.

Stu