github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/pkg/coveragedb/init_db.sh (about)

     1  #!/usr/bin/env bash
     2  # Copyright 2024 syzkaller project authors. All rights reserved.
     3  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     4  
     5  set -e # exit on any problem
     6  set -o pipefail
     7  
     8  db="coverage"
     9  echo "drop table 'files' if exists"
    10  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    11  --ddl="DROP TABLE IF EXISTS files"
    12  echo "create table 'files'"
    13  create_table=$( echo -n '
    14  CREATE TABLE
    15    files (
    16      "session" text,
    17      "manager" text,
    18      "filepath" text,
    19      "instrumented" bigint,
    20      "covered" bigint,
    21      "linesinstrumented" bigint[],
    22      "hitcounts" bigint[],
    23    PRIMARY KEY
    24      (session, manager, filepath) );')
    25  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    26   --ddl="$create_table"
    27  
    28  echo "drop table 'functions' if exists"
    29  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    30  --ddl="DROP TABLE IF EXISTS functions"
    31  echo "create table 'functions'"
    32  create_table=$( echo -n '
    33  CREATE TABLE
    34    functions (
    35      "session" text,
    36      "filepath" text,
    37      "funcname" text,
    38      "lines" bigint[],
    39    PRIMARY KEY
    40      (session, filepath, funcname) );')
    41  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    42   --ddl="$create_table"
    43  
    44  echo "drop table 'merge_history' if exists"
    45  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    46  --ddl="DROP TABLE IF EXISTS merge_history"
    47  echo "create table 'merge_history'"
    48  create_table=$( echo -n '
    49  CREATE TABLE
    50    merge_history (
    51      "namespace" text,
    52      "repo" text,
    53      "duration" bigint,
    54      "dateto" date,
    55      "session" text,
    56      "time" timestamptz,
    57      "commit" text,
    58      "totalrows" bigint,
    59    PRIMARY KEY
    60      (namespace, repo, duration, dateto) );')
    61  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    62   --ddl="$create_table"
    63   echo "creating 'merge_history' index"
    64   gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    65    --ddl="CREATE INDEX merge_history_session ON merge_history (session);"
    66  
    67  echo "drop table 'file_subsystems' if exists"
    68  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    69  --ddl="DROP TABLE IF EXISTS file_subsystems"
    70  echo "create table 'file_subsystems'"
    71  create_table=$( echo -n '
    72  CREATE TABLE
    73    file_subsystems (
    74      "namespace" text,
    75      "filepath" text,
    76      "subsystems" text[],
    77    PRIMARY KEY
    78      (namespace, filepath) );')
    79  gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
    80   --ddl="$create_table"