Newer
Older
ubixos-old / src / sys / ubixfsv2 / main.cpp
#include <iostream>
#include <vector>
#include <stdlib.h>
#include "inode.h"
#include "superblock.h"
#include "vfs.h"
#include "btree.h"

using namespace std;

int
main(void) {
  int i = 0;
  ubixfsInode * inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode -> name, "50");
  bTree * tree = new bTree(inode);

  for (i = 0; i < 3000; i++) {
//  while (tree->Verify()) {
//    if (i%1000 == 0) cout << "-_- i = "<<i<<" -_-" << endl;
    inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
    if (inode == NULL) break;
    memset(inode, 0, sizeof(ubixfsInode));
    for (int k = 0; k < (random() % 100)+5; k++) {
//    for (int k = 0; k < 100; k++) {
      inode->name[k] = (char)((random() % 26)+'a');
    } // for k
//     tree->Insert(inode);
    if (!tree->Insert(inode)) cout << "Insert(" << inode->name << ") failed" << endl;
//    ++i;
  } // for i
//  cout << "i made it to: " << i << endl;

#if 0
  for (a = 'a';a <= 'a';a++) {
    for (aa = 'a';aa <= 'b';aa++) {
      for (aaa = 'a';aaa <= 'z';aaa++) {
        inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
        memset(inode,0x0,sizeof(ubixfsInode));
        inode->name[0] = a;
        inode->name[1] = aa;
        inode->name[2] = aaa;
        if (!tree->Insert(inode)) cout << "Insert() failed" << endl;
        }
      }
    }
  for (a = 'c';a <= 'c';a++) {
    for (aa = 'a';aa <= 'b';aa++) {
      for (aaa = 'a';aaa <= 'z';aaa++) {
        inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
        memset(inode,0x0,sizeof(ubixfsInode));
        inode->name[0] = a;
        inode->name[1] = aa;
        inode->name[2] = aaa;
        if (!tree->Insert(inode)) cout << "Insert() failed" << endl;
        }
      }
    }
  for (a = 'b';a <= 'b';a++) {
    for (aa = 'a';aa <= 'b';aa++) {
      for (aaa = 'a';aaa <= 'z';aaa++) {
        inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
        memset(inode,0x0,sizeof(ubixfsInode));
        inode->name[0] = a;
        inode->name[1] = aa;
        inode->name[2] = aaa;
        if (!tree->Insert(inode)) cout << "Insert() failed" << endl;
        }
      }
    }
#endif        
#if 0
  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "m");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "a");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "b");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "c");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "d");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "e");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "f");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "j");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "h");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "eee");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "ee");
  tree->Insert(inode);

  inode = (ubixfsInode *)malloc(sizeof(ubixfsInode));
  memset(inode, 0, sizeof(ubixfsInode));
  strcpy(inode->name, "n");
cout << "---Inserting " << inode->name << "---" << endl;
  tree->Insert(inode);
#endif

  i = 0;
  ubixfsInode * tmpInode = tmpInode = tree->GetFirstNode();
  if (tmpInode == NULL) cout << "GetFirstNode() returns null" << endl;
  while (tmpInode != NULL) {
    //cout << "node[" << i++ << "]: " << tmpInode->name << endl;
    cout << tmpInode->name << endl;
    tmpInode = tmpInode->next;
  } // while

cout << sizeof(struct bNode) << endl;
cout << sizeof(struct ubixfsInode) << endl;
cout << sizeof(struct diskSuperBlock) << endl;

//  tree->Info();
  free(inode);
  delete tree;
  return 0;
}