diff options
| author | Junio C Hamano <gitster@pobox.com> | 2021-12-15 09:39:51 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2021-12-15 09:39:52 -0800 |
| commit | 63a2e8b41e478a86fd98f86fe67b6f6d5b15f8cf (patch) | |
| tree | 0cfc19ce4bca50ffd40f2e8588d91706d37527e2 /git-cvsserver.perl | |
| parent | Merge branch 'ew/cbtree-remove-unused-and-broken-cb-unlink' (diff) | |
| parent | tests: disable fsync everywhere (diff) | |
| download | git-63a2e8b41e478a86fd98f86fe67b6f6d5b15f8cf.tar.gz git-63a2e8b41e478a86fd98f86fe67b6f6d5b15f8cf.zip | |
Merge branch 'ew/test-wo-fsync'
Allow running our tests while disabling fsync.
* ew/test-wo-fsync:
tests: disable fsync everywhere
Diffstat (limited to 'git-cvsserver.perl')
| -rwxr-xr-x | git-cvsserver.perl | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/git-cvsserver.perl b/git-cvsserver.perl index 64319bed43..4c8118010a 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -3607,6 +3607,22 @@ package GITCVS::updater; use strict; use warnings; use DBI; +our $_use_fsync; + +# n.b. consider using Git.pm +sub use_fsync { + if (!defined($_use_fsync)) { + my $x = $ENV{GIT_TEST_FSYNC}; + if (defined $x) { + local $ENV{GIT_CONFIG}; + delete $ENV{GIT_CONFIG}; + my $v = ::safe_pipe_capture('git', '-c', "test.fsync=$x", + qw(config --type=bool test.fsync)); + $_use_fsync = defined($v) ? ($v eq "true\n") : 1; + } + } + $_use_fsync; +} =head1 METHODS @@ -3676,6 +3692,9 @@ sub new $self->{dbuser}, $self->{dbpass}); die "Error connecting to database\n" unless defined $self->{dbh}; + if ($self->{dbdriver} eq 'SQLite' && !use_fsync()) { + $self->{dbh}->do('PRAGMA synchronous = OFF'); + } $self->{tables} = {}; foreach my $table ( keys %{$self->{dbh}->table_info(undef,undef,undef,'TABLE')->fetchall_hashref('TABLE_NAME')} ) |
